国产探花免费观看_亚洲丰满少妇自慰呻吟_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()); } 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宽甸| 建湖县| 铁岭市| 隆德县| 睢宁县| 柏乡县| 安乡县| 呼玛县| 淅川县| 甘洛县| 都匀市| 田林县| 宜丰县| 新巴尔虎左旗| 宁德市| 安远县| 黎川县| 南开区| 沅江市| 年辖:市辖区| 泽普县| 宁海县| 泸定县| 冷水江市| 山阴县| 汉沽区| 正宁县| 秀山| 阿勒泰市| 东台市| 乌鲁木齐县| 黄浦区| 通榆县| 五家渠市| 西充县| 根河市| 讷河市| 金山区| 延安市| 绥阳县| 平安县|