public static Predicate distinctByKey(Function keyExtractor) { ConcurrentHashMap map = new ConcurrentHashMap<>(); return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; }