首页 > 技术文章 > 流式编程一些简单的例子

wingsless 2020-11-16 21:56 原文

1. 进行List类型转换

我们常会遇到这样一种问题,就是遍历List,将A中的某个元素赋给B,形成一个List。传统的编码方式应该是这样的:

List<S1> s1List = Stream.of(new S1("1", "Lee"), new S1("2", "Wang")).collect(Collectors.toList());
List<S2> s2List = new ArrayList<>();
for (S1 s1 : s1List) {
    S2 s2 = new S2(s1.getId());
    s2List.add(s2);
}

System.out.println(s2List);

这样做本身没有问题,但是学会了流式编程之后,这种方法就显得不是那么优雅了,可以用流式编程来改造一下代码:

List<S1> s1List = Stream.of(new S1("1", "Lee"), new S1("2", "Wang")).collect(Collectors.toList());
List<S2> s2List = s1List.stream().map(s1 -> new S2(s1.getId())).collect(Collectors.toList());
System.out.println(s2List);

同样的逻辑,只需要一行代码就搞定了。显着那么的优雅,Java也有点Python的意思了。

推荐阅读