国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java 三種將list轉換為map的方法詳解

2019-11-26 13:10:55
字體:
來源:轉載
供稿:網友

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()); } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘洛县| 正蓝旗| 会东县| 龙井市| 武乡县| 乐亭县| 文山县| 泰兴市| 阿瓦提县| 锡林浩特市| 河源市| 桐庐县| 安陆市| 凤台县| 丰顺县| 应城市| 洪泽县| 阿坝县| 盈江县| 社会| 贵阳市| 商都县| 黄石市| 论坛| 云安县| 原平市| 苗栗市| 张家界市| 那曲县| 青冈县| 泸溪县| 安阳市| 巢湖市| 红桥区| 张掖市| 浠水县| 乡城县| 调兵山市| 文成县| 射洪县| 宁津县|