java 8 stream

  1. stream 是干什么的
    Stream不是集合元素,他不是数据结构并不保存数据,它是有关算法和计算的,更像一个高版本的iterator。
  2. 数据只能遍历一次,遍历一次就用尽。
  3. 只有三种基本类型的stream,LongStream,IntStream,DoubleStream。基本类型在大数据量情况下比对应装箱类型性能好。
  4. collect收集器的步骤
  • 如何创建结果容器(比如说,使用ArrayList::new方法)
  • 如何把单个元素添加到容器中(比如使用ArrayList::add方法)
  • 如何把一个结果集合并到另一个中(比如使用ArrayList::addAll方法)
  1. Collector是一个包含了生产者,添加器,以及合并器在内的接口,Collectors.toList()生成Collector的实现对象
  2. 创建stream

#Collection接口有stream方法

Stream words = Stream.of("gently", 'cammsia", "the")

String [] wordsArray = {"gently", 'cammsia", "the"} 
Stream words = Stream.of(wordsArray)

#generate 方法接受一个无参数函数
Stream echoes = Stream.generate(()->"Echo")
Stream randoms = Stream.generate(Math::random)

#f(f(f(seed)))
Stream integers = Stream.iterate(BigInteger.ZERO, n -> n.add(BigInteger.ONE))

Stream words = Pattern.compile("[\\P{L}]+").splitAsStream(content)

#Stream继承了Autoacloseable
try(Stream lines = Files.lines(path)) {
}

你可能感兴趣的:(java 8 stream)