java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合

本文详细介绍了Java8中使用Stream API遍历和操作集合的各种方式,包括普通遍历forEach、过滤filter、排序sorted、字符串拼接joining、操作Map集合以及对象集合等,展示了Java8的新特性和便利性。
摘要由CSDN通过智能技术生成

由于是以流方式,所以怎么操作也不改变原来的集合

7571eba3292f8d24efc2009fcb80068a.png

1、普通遍历forEach

List list = newArrayList();

list.add("a");

list.add("b");

list.add("c");

list.add("d");

List list2 = newArrayList();

list.stream().forEach(str->{

list2.add(str);

});

System.out.println(list2);

e77fe48b59473a1dd17b3f22b4493219.png

2、过滤filter

List list = newArrayList();

list.add("a");

list.add("b");

list.add("c");

list.add("d");

List list3 = newArrayList();//过滤字符串为a的元素

list.stream().filter(str -> !"a".equals(str)).forEach(str ->{

list3.add(str);

});

System.out.println(list3);

5488bc9ec2b04ff917092c70e458d78c.png

ad22ebe2937d760764c9d052c9761350.png

3、排序sorted

List list = newArrayList();

list.add("ab");

list.add("aa");

list.add("c");

list.add("d");

System.out.println("操作前list: " +list);

List collect = list.stream().sorted((a, b) ->{returna.compareTo(b);

}).collect(Collectors.toList());

System.out.println("升序collect: " +collect);

List collect2 = list.stream().sorted((a, b) ->{returnb.compareTo(a);

}).collect(Collectors.toList());

System.out.println("降序collect2: " +collect2);

}

a9d464f1b222f1c03c6ccc039e0f15c8.png

4、操作字符串集合,返回拼接字符串。collect的Collectors.joining

List list = newArrayList();

list.add("b");

list.add("a");

list.add("c");

list.add("d");

System.out.println("操作前list: " +list);

String collect= list.stream().sorted((a, b) ->{returnb.compareTo(a);

}).collect(Collectors.joining(",", "前", "后"));

System.out.println("有前后collect: " +collect);

String collect2= list.stream().sorted((a, b) ->{returnb.compareTo(a);

}).collect(Collectors.joining(","));

System.out.println("没前后collect: " + collect2);

00ada9a5ef5d922ad85a2d99ed8c3bd4.png

5、操作map集合

List> list = newArrayList();

Map map = new HashMap<>();

map.put("id", "wwww");

list.add(map);

Map map2 = new HashMap<>();

map2.put("id", "qqqq");

list.add(map2);

Map map3 = new HashMap<>();

map3.put("name", "qqqq");

list.add(map3);

System.out.println("list: " +list);

String collect= list.stream().filter(map1 -> null != map1.get("id"))

.map(str-> str.get("id").toString())

.collect(Collectors.joining(",", "前", "后"));

System.out.println("collect: " + collect);

9a541d012938c75fe8a218e2464d764d.png

6、操作对象

List list = newArrayList();

Student student= newStudent();

student.setAge("11");

student.setName("aaa");

list.add(student);

Student student2= newStudent();

student2.setAge("22");

student2.setName("bbb");

list.add(student2);

System.out.println("list: " +list);

String collect= list.stream().map(student3 ->student3.getName())

.collect(Collectors.joining(",", "前", "后"));

System.out.println("collect: " + collect);

2ac9f864fa37e23563c94fac433da3a5.png

4de83c34f32db13f188917bf60a1bb5b.png

7、合并两个字符串数组flatMap

List list = newArrayList();

list.add(new String[]{"aa", "bb"});

list.add(new String[]{"ff", "ee"});

System.out.println("list: " +list);

String collect=list.stream().flatMap(Arrays::stream)

.collect(Collectors.joining(",", "前", "后"));

System.out.println("collect: " + collect);

2c56e2fc80f5026b4166317af3081f7f.png

8、合并两个字符串集合flatMap

List> list = newArrayList();

list.add(Arrays.asList(new String[]{"aa", "bb"}));

list.add(Arrays.asList(new String[]{"ff", "ee"}));

System.out.println("list: " +list);

String collect= list.stream().flatMap(list2 ->list2.stream())

.collect(Collectors.joining(",", "前", "后"));

System.out.println("collect: " + collect);

925d4ffeae218bfa7b7f1da18a869ed8.png

9、合并对象集合

List> list = newArrayList();

List list1 = newArrayList();

list1.add(new Student("23", "aaa"));

list1.add(new Student("43", "bbb"));

list.add(list1);

List list2 = newArrayList();

list2.add(new Student("66", "qqq"));

list2.add(new Student("77", "www"));

list.add(list2);

System.out.println("list: " +list);

String collect= list.stream().flatMap(list4 -> list4.stream().map(student ->student.getName()))

.collect(Collectors.joining(",", "前", "后"));

System.out.println("collect: " + collect);

d2d5cd157e45960bbe190687c314e764.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值