Stream 的Map()方法
代码示例:
package day02;
import java.util.Arrays;
import java.util.List;
/**
* 将集合中长度为5的字符串打印出来
*/
public class StreamTest02 {
public static void main(String[] args) {
List<String> list = Arrays.asList("hello","world","Hello world");
/*list.stream().mapToInt(item -> item.length()).filter(length -> length == 5)
.findFirst().ifPresent(System.out::println);
*/
list.stream().mapToInt(item -> {
int length = item.length();
System.out.println(item);
return length;
}).filter(length -> length == 5)
.findFirst().ifPresent(System.out::println);
/**打印结果:
* hello
* 5
* 原因:stream()中存在短路操作,如果stream中有一个执行不通过,那么其他的也不会执行。
*/
}
}
Stream 的flatMap()方法
代码示例一:
package day02;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 将集合中的单词取出来,并去重
* * flatMap(Arrays::stream)的作用是将Stream(String[]),转换成Stream(String)
*/
public class StreamTest03 {
public static void main(String[] args) {
List<String> list = Arrays.asList("hello","world","Hello world","Hello World"
,"hello welcome","welcome hello");
list.stream().map(item -> item.split(" ")).flatMap(Arrays::stream).distinct()
.collect(Collectors.toList()).forEach(System.out::println);
}
}
代码示例二:
package day02;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 将集合中的单词取出来,并去重
* * flatMap(Arrays::stream)的作用是将Stream(String[]),转换成Stream(String)
*/
public class StreamTest04 {
public static void main(String[] args) {
List<String> list1 = Arrays.asList("Hi","Hello","你好");
List<String> list2 = Arrays.asList("张三","李四","王五","赵丽颖");
System.out.println(list1.stream().flatMap(item -> list2.stream().map(item2 -> item + " " + item2))
.collect(Collectors.toList()));
}
}