标签:stream list System 特性 jdk8 forEach println out
stream的创建方式
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
System.out.println("------------------");
//1.通过collection创建stream
list.stream().forEach((li) -> {
System.out.println(li);
});
System.out.println("------------------");
//方法的引用:
//实体对象:成员方法
list.stream().forEach(System.out::println);
System.out.println("------------------");
//多线程创建的流
list.parallelStream().forEach(System.out::println);
System.out.println("------------------");
//通过Array数组创建的流:
Integer[] arr={1,2,35,5};
Arrays.stream(arr).forEach(System.out::println);
System.out.println("---------------------");
//通过stream的of创建的流
Stream.of("zs","lisi").forEach(System.out::println);
System.out.println("-------------------");
//通过stream的iterate创建的流
//该流用于计算
//iterate的参数1:表示的是初始的值,参数2表示的是计算 Limit表示的是限制
Stream.iterate(3,x->x+1).limit(3).forEach(System.out::println);
System.out.println("----------------");
Stream.generate(()->new Random().nextInt(5)).limit(3).forEach(System.out::println);
}
## stream流的常见实现方式 ##
```java
List<Person> list=new ArrayList<Person>();
list.add(new Person("sunwukong", 500));
list.add(new Person("tangsen", 20));
list.add(new Person("bajie", 600));
list.add(new Person("shaseng", 660));
list.add(new Person("bajie", 600));
//1.过滤流
//名字的长度大于5
list.stream().filter(person -> person.getName().length()>5).forEach(System.out::println);
System.out.println("--------------------");
//2.跳过前两个的结果
list.stream().skip(2).forEach(System.out::println);
System.out.println("-------------");
//3.去重
list.stream().distinct().forEach(System.out::println);
System.out.println("----------------");
//4.sorted排序
list.stream().sorted((o1,o2)->o1.getAge().compareTo(o2.getAge())).forEach(System.out::println);
System.out.println("--------------");
//5.map映射---转为map集合
list.stream().map(t->t.getName()).forEach(System.out::println);
System.out.println("------------------");
//6.多线程查看
list.stream().parallel().forEach(System.out::println);
System.out.println("---------------------");
//7.min求最小值
System.out.println(list.stream().min((o1,o2)->o1.getAge()-(o2.getAge())));
System.out.println("----------------------");
//8.max的最大值
System.out.println(list.stream().max((o1,o2)->o1.getAge()-o2.getAge()));
System.out.println("---------------------");
//9.求总个数`
System.out.println(list.stream().count());
System.out.println("---------------------");
//10.reduce计算
Optional<Integer> reduce = list.stream().map(t -> t.getAge()).reduce((o1, o2) -> o1 +o2 );
System.out.println("计算的结果是:"+reduce);
//11.用collect将stream转为集合的方法
Set<String> collect = list.stream().map(t -> t.getName()).collect(Collectors.toSet());
System.out.println("转为的结果是:"+collect);
}
标签:stream,list,System,特性,jdk8,forEach,println,out 来源: https://www.cnblogs.com/lin5923/p/15172493.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。