三种将List转换成Map的方法
来源:互联网 发布:公司封了游戏端口 编辑:程序博客网 时间:2024/06/07 01:17
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
使用传统的方法:
2) JAVA 8直接用流的方法:
3) 使用guava 工具类库
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());
- }
0 0
- 三种将List转换成Map的方法
- 三种将list转换为map的方法
- 三种将list转换为map的方法
- 三种将list转换为map的方法
- Map转换List一些方法
- ResultSet转换为List的方法 JSON MAP
- 将数据库返回的ResultSett转换成List装Map形式的方法(ResultSetToList)
- 使用fastjson的parseObject方法将json字符串转换成Map 或者List
- list,set,map,的转换
- List To Map的转换
- 将xml字符串转换成map,list 的转换
- LIST集合转换成MAP
- json、list、map、String简单转换方法
- List转换String,String转换List,Map转换String,String转换Map之间的转换类
- redis获取的集合转换成普通list/map集合
- json list map 对象 转换成tostring Json的数据格式
- map和list 的相互转换
- 实现List和Map数据的转换
- Could not find *.apk!
- HDU 2046 骨牌铺方格
- 家电业探寻进化虫洞 长虹信息化武装一马当先
- 关于在IE6和IE8下获取Excel2007的ContectType不同的问题
- Android Afinal框架学习(一) FinalDb 数据库操作
- 三种将List转换成Map的方法
- Ubuntu(pc)中部署boa服务器
- Mysql GROUP BY NULL
- php学习笔记(八)数组
- 经典API记载
- 怎样求FIRST集与FOLLOW集
- Xcode方法提示不显示的解决办法
- jvm 性能分析值 visual vm 以及 jhat、mat使用
- 设计模式大集锦 程序员面试全攻略