static <T, K, U> Collector<T, ?, TreeMap<K, U>> buildTreeMapCollector(
            Function<? super T, ? extends K> keyMapper,
            Function<? super T, ? extends U> valueMapper) {

        return Collectors.toMap(
                keyMapper,
                valueMapper,
                (v1, v2) -> {
                    throw new RuntimeException(String.format("Duplicate key for values %s and %s", v1, v2));
                },
                TreeMap::new);
    }
Return a Collector that collects to a TreeMap using the supplied key and value mappers. Duplicate keys will
result in a {@link RuntimeException}. Useful for creating sorted maps to go into HealthCheck detail values
stroom-util/src/main/java/stroom/util/HasHealthCheck.java