21xrx.com
2024-11-13 03:36:32 Wednesday
登录
文章检索 我的文章 写文章
最近在学习Java的stream流
2023-06-11 00:08:59 深夜i     --     --

最近在学习Java的stream流,并学习了两个非常实用的方法:reduce和list转map。我今天就来和大家分享一下这两个方法的使用。

Java Stream的reduce方法是将所有元素逐个按照某个方式进行运算,最终得到一个目标值的过程。举个例子,如果我有一个Integer类型的List:[1, 2, 3, 4, 5],想要求最后所有元素的总和,可以这样写:


List list = Arrays.asList(1, 2, 3, 4, 5);

int sum = list.stream().reduce(0, (a, b) -> a + b);

这里的0表示初始值,a和b分别表示列表中的元素,而(a, b) -> a + b则表示将a和b相加。

而Java Stream的list转map方法,可以将一个List转换成一个Map,非常适用于将一些list中的元素按照某种标准进行分类。这里同样一一举例。

假设我们有一个List,里面有多个Person对象,而每个Person对象都有一个唯一的id,我们想要将List转换成Map,key为id,value为Person对象,可以这样写:


List personList = new ArrayList<>();

personList.add(new Person(1, "Tom"));

personList.add(new Person(2, "Jerry"));

personList.add(new Person(3, "Lucy"));

Map personMap = personList.stream().collect(Collectors.toMap(Person::getId, Function.identity()));

其中Person为自定义的类,getId为获取id的方法。

总的来说,这两个方法对于Java Stream的使用都是非常实用的,也方便我们在实际开发中的使用。不过在使用过程中也要根据需求合理应用,才能真正发挥他们的优势。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复