JDK8通过Stream 对List,Map操作和互转的实现

网友投稿 647 2023-07-21

JDK8通过Stream 对List,Map操作和互转的实现

JDK8通过Stream 对List,Map操作和互转的实现

1、Map数据转换为自定义对象的List,例如把map的key,value分别对应Person对象两个属性

ygcmfmList list = map.entrySet().stream().sorted(Comparator.comparing(e -> e.getKey()))

.map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());

List list = map.entrySet().stream().sorted(Comparator.comparing(Map.Entry::getValue))

.map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());

List list = map.entrySet().stream().sorted(Map.Entry.comparingByKey())

.map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());

以上三种方式不同之处在于排序的处理。参考链接

https://concretepage.com/java/jdk-8/java-8-convert-map-to-list-using-collectors-tolist-example

2、List对象转换为其他List对象:

List employees = persons.stream()

.filter(p -> p.getLastName().equals("l1"))

.map(p -> new Employee(p.getName(), p.getLastName(), 1000))

.collect(Collectors.toList());

3、从List中过滤出一个元素

User match = users.stream().filter((user) -> user.getId() == 1).findAny().get();

4、List转换为Map

public clasygcmfms Hosting {

private int Id;

private String name;

private long websites;

public Hosting(int id, String name, long websites) {

Id = id;

this.name = name;

this.websites = websites;

}

//getters, setters and toString()

}

Map result1 = list.stream().collect(

Collectors.toMap(Hosting::getId, Hosting::getName));

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot项目没有把依赖的jar包一起打包的问题解决
下一篇:彻底解决Spring mvc中时间的转换和序列化等问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~