문서의 이전 판입니다!
StreamSupport.stream(iterable.spliterator(), false) .filter(...) .moreStreamOps(...);
List<List<Object>> list = ... List<Object> flat = list.stream() .flatMap(List::stream) .collect(Collectors.toList());
public static <T> Stream<T> asStream(Collection<T> collection) { return Optional.ofNullable(collection) .map(Collection::stream) .orElse(Stream.empty()); } public static <T> Stream<T> asStream(T[] array) { return Optional.ofNullable(array) .map(Arrays::stream) .orElse(Stream.empty()); }
distinct
를 하려면,public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Map<Object,Boolean> seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } persons.stream().filter(distinctByKey(p -> p.getName());