jdk8字符串变为long集合_JDK8通过Stream 对List,Map操作和互转的实现

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


版权声明:本文为weixin_29016315原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。