java 三种将list转换为map的方法详解

在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String description) {
super();
this.rank = rank;
this.description = description;
}
public Integer getRank() {
return rank;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("rank", rank)
.add("description", description)
.toString();
}
}
使用传统的方法:
@Test
public void convert_list_to_map_with_java () {
List<Movie> movies = new ArrayList<Movie>();
movies.add(new Movie(1, "The Shawshank Redemption"));
movies.add(new Movie(2, "The Godfather"));
Map<Integer, Movie> mappedMovies = new HashMap<Integer, Movie>();
for (Movie movie : movies) {
mappedMovies.put(movie.getRank(), movie);
}
logger.info(mappedMovies);
assertTrue(mappedMovies.size() == 2);
assertEquals("The Shawshank Redemption", mappedMovies.get(1).getDescription());
}
2) JAVA 8直接用流的方法:
@Test
public void convert_list_to_map_with_java8_lambda () {
List<Movie> movies = new ArrayList<Movie>();
movies.add(new Movie(1, "The Shawshank Redemption"));
movies.add(new Movie(2, "The Godfather"));
Map<Integer, Movie> mappedMovies = movies.stream().collect(
Collectors.toMap(Movie::getRank, (p) -> p));
logger.info(mappedMovies);
assertTrue(mappedMovies.size() == 2);
assertEquals("The Shawshank Redemption", mappedMovies.get(1).getDescription());
}
3) 使用guava 工具类库
@Test
public void convert_list_to_map_with_guava () {
List<Movie> movies = Lists.newArrayList();
movies.add(new Movie(1, "The Shawshank Redemption"));
movies.add(new Movie(2, "The Godfather"));
Map<Integer,Movie> mappedMovies = Maps.uniqueIndex(movies, new Function <Movie,Integer> () {
public Integer apply(Movie from) {
return from.getRank();
}});
logger.info(mappedMovies);
assertTrue(mappedMovies.size() == 2);
assertEquals("The Shawshank Redemption", mappedMovies.get(1).getDescription());
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# list转换为map的方法
# java
# list转换为map的几种方法
# list转换为map
# Java中List与Map初始化的一些写法分享
# Java集合Set、List、Map的遍历方法
# java中数组list map三者之间的互转介绍
# Java如何在List或Map遍历过程中删除元素
# Java三种方法将List转换为Map的实例
# Java中List转Map的几种具体实现方式和特点
# 三种
# 转换为
# 希望能
# 谢谢大家
# 类库
# getDescription
# Override
# toString
# return
# public
# super
# getRank
# Test
# convert_list_to_map_with_java
# void
# add
# Objects
# toStringHelper
# List
# description
相关文章:
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
建站主机CVM配置优化、SEO策略与性能提升指南
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
手机网站制作与建设方案,手机网站如何建设?
网站制作软件有哪些,制图软件有哪些?
如何通过免费商城建站系统源码自定义网站主题与功能?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何在Windows服务器上快速搭建网站?
建站之星代理平台如何选择最佳方案?
如何解决ASP生成WAP建站中文乱码问题?
用v-html解决Vue.js渲染中html标签不被解析的问题
建站之星安装步骤有哪些常见问题?
深圳网站制作平台,深圳市做网站好的公司有哪些?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
西安专业网站制作公司有哪些,陕西省建行官方网站?
建站之星后台密码遗忘或太弱?如何重置与强化?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何在搬瓦工VPS快速搭建网站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
电商网站制作价格怎么算,网上拍卖流程以及规则?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
Swift中循环语句中的转移语句 break 和 continue
建站之星导航配置指南:自助建站与SEO优化全解析
如何在IIS管理器中快速创建并配置网站?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
小型网站建站如何选择虚拟主机?
如何用景安虚拟主机手机版绑定域名建站?
如何快速搭建FTP站点实现文件共享?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
济南专业网站制作公司,济南信息工程学校怎么样?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
建站之星如何防范黑客攻击与数据泄露?
*服务器网站为何频现安全漏洞?
建站之星如何开启自定义404页面避免用户流失?
如何选择CMS系统实现快速建站与SEO优化?
海南网站制作公司有哪些,海口网是哪家的?
如何通过VPS建站无需域名直接访问?
如何高效搭建专业期货交易平台网站?
如何生成腾讯云建站专用兑换码?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
重庆市网站制作公司,重庆招聘网站哪个好?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何用y主机助手快速搭建网站?
建站ABC备案流程中有哪些关键注意事项?
*请认真填写需求信息,我们会在24小时内与您取得联系。