JDK8通过Stream 对List,Map操作和互转的实现
2019-10-25 18:07
996 查看
1、Map数据转换为自定义对象的List,例如把map的key,value分别对应Person对象两个属性:
List<Person> list = map.entrySet().stream().sorted(Comparator.comparing(e -> e.getKey())) .map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList()); List<Person> list = map.entrySet().stream().sorted(Comparator.comparing(Map.Entry::getValue)) .map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList()); List<Person> list = map.entrySet().stream().sorted(Map.Entry.comparingByKey()) .map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());
以上三种方式不同之处在于排序的处理。参考链接:
https://www.concretepage.com/java/jdk-8/java-8-convert-map-to-list-using-collectors-tolist-example
2、List对象转换为其他List对象:
List<Employee> 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<Integer, String> result1 = list.stream().collect( Collectors.toMap(Hosting::getId, Hosting::getName));
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- [Play with T]_[C# 类与属性操作] 通过克隆实现ObjectMap对List的填充
- java8快速实现List转map 、分组、过滤等操作
- java8 快速实现List转map 、分组、过滤等操作
- 通过多线程实现list数据更新操作
- jdk8 stream可以与list,map等数据结构互相转换
- 利用java8的stream的list转map,实现数据库批量查询业务逻辑,减低数据库压力
- java8 stream 操作map根据key或者value排序的实现
- jdk1.8中Stream方法实现输入参数List,返回Map(list的元素和其对应的次数)
- 利用list和map代替对象模式,实现jdbc的简单操作,省去对象转换的繁琐步骤!
- java8 快速实现List转map 、分组、过滤等操作
- ExtJS Tree利用json(直接传List TreeNode,不需要转化为JSONArray或通过JSP传)在Struts 2实现Ajax动态加载树结点
- 实现listLink链表操作
- scala-35:List的map、flatMap、foreach、filter操作代码实战
- js操作CheckBoxList实现全选/反选(在客服端完成)
- JS通过操作Element的Css来实现隐藏和显示(本示例只有隐藏)
- 第32讲:List的基本操作实战与基于模式匹配的List排序算法实现
- 通过结构体指针实现顺序链表的基础操作
- Java通过代理类实现数据库DAO操作
- JavaScript 利用map和reduce操作实现一个string2int()函数
- 长度为N的数组乱序存放着0带N-1.现在只能进行0与其他数的swap操作,请设计并实现排序,必须通过交换实现排序。