Stream流的生成
List<String> list = new ArrayList<>();Stream<String> listStream = list.stream();
Set<String> set = new HashSet<>();Stream<String> setStream = set.stream();
Map<String,Integer> map = new HashMap<>();
Stream<String> keySetStream = map.keySet().stream();
Stream<Integer> valuesStream = map.values().stream();
Stream<Map.Entry<String, Integer>> entryStream = map.entrySet().stream();
String[] strArray = {"hello","world","java"};
Stream<String> strArrayStream = Stream.of(strArray);
Arrays.stream(nums).reduce((a,b)->a^b).getAsInt();
System.out.println(list.stream().getClass());
Stream流的常见中间操作
Stream<T> filter(Predicate<? super T> predicate);
Stream<T> limit(long maxSize);
Stream<T> skip(long n);
Stream<T> distinct();
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
IntStream mapToInt(ToIntFunction<? super T> mapper);
Stream<T> sorted();
Stream<T> sorted(Comparator<? super T> comparator);
static <T> Stream<T> concat(Stream<? extends T> a,Stream<? extends T> b);
list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3).forEach(System.out::println);
list.stream().map(Integer::parseInt).forEach(System.out::println);
int result = list.stream().mapToInt(Integer::parseInt).sum();
list.stream().limit(2).forEach(System.out::println);
list.stream().skip(2).forEach(System.out::println);
list.stream().skip(2).limit(2).forEach(System.out::println);
Stream.concat(s1,s2).forEach(System.out::println);
Stream.concat(s1,s2).distinct().forEach(System.out::println);
Stream流常见终结操作
void forEach(Consumer<? super T> action);
long count();
long count = list.stream().filter(s -> s.startsWith("张")).count();
Stream流的收集操作
<R, A> R collect(Collector<? super T, A, R> collector);
static class CollectorImpl<T, A, R> implements Collector<T, A, R>
Collector<T, ?, List<T>> toList()
Collector<T, ?, Set<T>> toSet()
Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper)
List<String> newList = list.stream().filter(s -> s.startsWith("张")).collect(Collectors.toList());
原来你是这样的 Stream
Java Stream 源码深入解析