`

三种将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());
}
8
0
分享到:
评论
2 楼 Cxexti 2014-11-20  
我无耻的粘贴到我空间了
1 楼 chenglm 2014-11-19  
写的不错

相关推荐

    在Java 8中将List转换为Map对象方法

    在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 首先,我们需要明确Map的key是什么?在这...

    List转换为List

    本知识点重点讲解将List转换为List&lt;Map&gt;的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List转换为List&lt;Map&gt; 在Java中,Bean...

    java转换xml、list、map和json

    例如,在上面的代码中,maptoXml方法将Map对象转换为xml字符串。该方法首先创建了一个Document对象,然后添加一个node元素,接着遍历Map对象的keySet,生成key元素,并将其添加到node元素中。最后,使用doc2String...

    Java三种方法将List转换为Map的实例

    Java三种方法将List转换为Map的实例 在Java编程中,将List转换为Map是一种常见的操作,今天我们将介绍三种不同的方法来实现这个操作。 方法一:使用for循环 首先,我们可以使用for循环来遍历List,然后将每个元素...

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

    在Java编程中,将列表...这三种方法都可以将列表转换为Map,但Java 8的流API和Lambda表达式提供了更简洁、更易读的代码,而Guava库则提供了额外的功能和便利性。在选择方法时,可以根据项目需求和个人偏好进行选择。

    将list转换成JavaBean

    将list&lt;Map&gt;转换成JavaBean的工具类

    ResultSet 转为listmap

    ResultSet 转为 List&lt;Map&gt; 是一种常见的数据处理操作。在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,我们需要将 ResultSet ...

    java字符串与集合互相转换,字符串转List,Map,List转String,String转List源码

    List集合转换成String,String转List,Map转String,String转Map等 集合与字符串相互转换,可以自己扩展源码,带有注释

    json 转换为map

    3. **调用fromJson()方法**:使用`Gson`对象的`fromJson()`方法,将JSON字符串转换为Map。 ```java String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; Map, Object&gt; map = gson.from...

    json字符串转成 Map/List

    在Java中,将JSON字符串转换为Map或List是常见的操作,这在处理服务器返回的数据或者进行数据序列化时非常有用。 JSON字符串的结构主要包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号...

    MapStruct实体转换及List转换的方法讲解

    在本文中,我们将介绍MapStruct实体转换及List转换的方法讲解。我们将从基本概念开始,逐步深入到高级话题,包括属性映射、列表映射和嵌套对象映射等。 一、基本概念 MapStruct是一个Java库,用于简化实体对象之间...

    list转map,list转tree,减少数据库查询次数

    在Java中,可以使用`Stream` API将List转换为Map,如下所示: ```java List&lt;User&gt; userList = ...; Map, String&gt; userMap = userList.stream() .collect(Collectors.toMap(User::getId, User::getName)); ``` ...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    js模拟list和map

    javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 &lt;br&gt;List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...

    map转化为list

    2. `BeanUtils.java`: 这可能是自定义的工具类,用于Java Bean对象的操作,可能包含了转换Map到List的实用方法。 3. `TbPowerGroupBeanServiceImpl.java`: 这可能是服务层实现类,处理业务逻辑,可能调用了`...

    java利用反射,将Object和Map进行互相转换,list和map互相转换

    java利用反射,将Object和Map进行互相转换,list和map互相转换 java Map和Object转换,list和map转换

    java将xml串转换成Map类型

    将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map

    SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名

    在将查询结果转换为Map时,我们可能会遇到需要将Map的Key由下划线形式转换为驼峰形式的需求。 要实现这个功能,我们可以创建一个工具类,专门处理这种转换。以下是一个简单的示例: ```java import java.util.Map;...

    解析excel数据转换为Map 支持03和07(xls/xlsx)

    本文将详细讲解如何使用Java编程语言解析Excel数据并将其转换为Map对象,同时支持03版(xls)和07版(xlsx)格式。 首先,解析Excel数据的关键在于使用合适的库。Apache POI 是一个流行的Java API,它允许开发者...

    Java xml转化为map

    - Apache Commons Digester库提供了一种规则驱动的方式来将XML转换为Map,通过定义匹配规则,当匹配到XML中的某个模式时,它会调用相应的处理方法。 4. **自定义转换器**: - 如果XML结构复杂,也可以自定义转换...

Global site tag (gtag.js) - Google Analytics