三种将list转换为map的方法
来源:互联网 发布:linux open函数头文件 编辑:程序博客网 时间:2024/05/18 13:26
1) 传统方法
假设有某个类如下
使用传统的方法:
2) JAVA 8直接用流的方法:
3) 使用guava 工具类库
假设有某个类如下
- 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的方法
- ResultSet转换为List的方法 JSON MAP
- list转换为map
- json字符串转换为多级Map -list-map的形式
- java 将list转换为map 的泛型通用方法
- Map转换为JAVABean的方法
- Map转换为JAVABean的方法
- Map转换List一些方法
- Java实现将Map转换为List的小代码
- Java实现将Map转换为List的小代码
- 存储集合元素的List转换为Map
- List,Set转换为数组的方法
- ResultSet转换为List的方法
- String、list、map转换为json
- Java 8 将List转换为Map
- Linux学习4_shell脚本学习
- 169.Majority Element (数组中出现次数超过一半的数)
- Java HashMap初探
- jQuery插件开发解析
- 索引
- 三种将list转换为map的方法
- 解决Android SDK不能通过google下载问题
- 结构体struct sockaddr sockaddr_in
- MySQL 5.7原生JSON格式支持
- 判断鼠标左键,右键点击
- 嵌入式C编程经验 之 全局变量
- WIN7搭建NTP服务器
- eclipse或myEclipse修改jdk版本
- poj 1135 Domino Effect(dijkstra)(中等)