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

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

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第1张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第2张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第3张图片

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第4张图片

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);

}

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第5张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第6张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第7张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第8张图片

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第9张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第10张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第11张图片

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);

java8遍历集合_【记录】【java】JDK8新特性Stream方式遍历集合_第12张图片

你可能感兴趣的:(java8遍历集合)