JDK8 通过 Stream 对 List、Map 操作和互转的实现 JDK8 中的 Stream API 是一个非常强大的工具,它可以帮助开发者快速、简洁地进行数据处理。在实际开发中,我们经常需要将 List 转换为 Map,或者将 Map 转换为 List。今天,我们将详细介绍如何使用 Stream API 实现这些操作。 Map 转换为 List 在实际开发中,我们经常需要将 Map 转换为 List,例如将 Map 中的 Key-Value 对转换为一个 List 对象。在 JDK8 中,我们可以使用 Stream API 來实现这种操作。 List<Person> list = map.entrySet().stream() .sorted(Comparator.comparing(e -> e.getKey())) .map(e -> new Person(e.getKey(), e.getValue())) .collect(Collectors.toList()); 在上面的代码中,我们首先将 Map 转换为一个 Stream,然后使用 sorted() 方法对 Key 进行排序,接着使用 map() 方法将每个 Entry 转换为一个 Person 对象,最后使用 collect() 方法将 Stream 转换为一个 List 对象。 List 转换为其他 List 在实际开发中,我们经常需要将一个 List 转换为另一个 List,例如将一个 List 对象转换为另一个 List 对象。在 JDK8 中,我们可以使用 Stream API 来实现这种操作。 List<Employee> employees = persons.stream() .filter(p -> p.getLastName().equals("l1")) .map(p -> new Employee(p.getName(), p.getLastName(), 1000)) .collect(Collectors.toList()); 在上面的代码中,我们首先将 List 转换为一个 Stream,然后使用 filter() 方法过滤出符合条件的对象,接着使用 map() 方法将每个对象转换为一个 Employee 对象,最后使用 collect() 方法将 Stream 转换为一个 List 对象。 从 List 中过滤出一个元素 在实际开发中,我们经常需要从一个 List 中过滤出一个元素,例如根据某个条件从 List 中找到一个对象。在 JDK8 中,我们可以使用 Stream API 来实现这种操作。 User match = users.stream() .filter((user) -> user.getId() == 1) .findAny() .get(); 在上面的代码中,我们首先将 List 转换为一个 Stream,然后使用 filter() 方法过滤出符合条件的对象,接着使用 findAny() 方法找到第一个符合条件的对象,最后使用 get() 方法将其转换为一个对象。 List 转换为 Map 在实际开发中,我们经常需要将一个 List 转换为一个 Map,例如将一个 List 对象转换为一个 Map 对象。在 JDK8 中,我们可以使用 Stream API 来实现这种操作。 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)); 在上面的代码中,我们首先将 List 转换为一个 Stream,然后使用 collect() 方法将其转换为一个 Map 对象。在 collect() 方法中,我们使用 Collectors.toMap() 方法将每个对象转换为一个 Map.Entry 对象,然后将其转换为一个 Map 对象。 我们可以使用 Stream API 来实现各种 List 和 Map 之间的操作,例如将 Map 转换为 List,List 转换为其他 List,从 List 中过滤出一个元素,或者将 List 转换为 Map。这些操作可以简洁、快速地实现数据处理。






























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于AT89S52单片机的数字温度计设计.doc
- 2023年初级通信工程师考试试题及答案.doc
- 软件项目立项评审报告模版.doc
- 项目管理-系列2-3:配置管理实用手册vss.docx
- 家里怎么安装网络.pdf
- 工业机器人遥操作控制系统设计嵌入式伺服控制器设计样本.doc
- 精品课程网络教学资源和硬件环境.pdf
- 发电系统安全控制.doc
- 网络诈骗常见手段及防范对策.doc
- 计算机组成原理习题)(1)解析.doc
- 电子商务和税收筹划的关系是什么.doc
- 再生资源回收体系建设项目管理手册.doc
- 国家网络安全法考试试题与答案.pdf
- 软件测试实验报告.doc
- 数据库课程设计宾馆客房信息管理系统.doc
- 网络推广最高效率的方案.doc



- 1
- 2
前往页