`

java 8 Stream list to Map key 重复 value合并到Collection

阅读更多

关于把list转换成key value的map有很多博客上都有实现,这里是一个吧value放入到集合中去

 

      List<String> list = Lists.newArrayList("1", "2", "3", "1");
        Map<String, List<String>> map = list.stream().collect(Collectors.toMap(key -> key,
                value -> Lists.newArrayList(value),
                (List<String> newValueList, List<String> oldValueList) -> {
                    oldValueList.addAll(newValueList);
                    return oldValueList;
                }));
        System.out.println(JSON.toJSONString(map));

 类似的,你的list泛型可以是一个bean,取bean的属性当key或者value,转换成一个集合

 

结果: {"1":["1","1"],"2":["2"],"3":["3"]}

分享到:
评论

相关推荐

    如何在java 8 map中使用stream

    Java 8 中使用 Stream 遍历 Map Java 8 中引入了 Stream 概念, Stream 是一种非常强大的功能,可以使我们更加简单的操作 Map 对象。Map 是 Java 中非常常用的一个集合类型,我们通常也需要去遍历 Map 去获取某些值...

    尚硅谷Java8练习Java源码

    Java 8对`Map`接口进行了扩展,增加了如`map.getOrDefault(key, defaultValue)`,`map.computeIfAbsent(key, mappingFunction)`等方法,使操作更加便捷。 9. **构造函数引用**: 类似于方法引用,构造函数引用...

    Java中的Set、List、Map的用法与区别介绍

    总之,Set、List和Map在Java集合框架中分别用于存储无序不重复元素、有序可重复元素和键值对。选择哪种集合取决于具体的应用需求,如是否需要保持元素顺序、是否允许重复、以及如何高效地访问和操作元素。理解它们的...

    Java集合框架常见面试题.pdf

    总结来说,Java集合框架为开发者提供了丰富的数据结构以应对不同场景的需要,从简单的List和Set到复杂的Map结构,再到线程安全的集合实现,每个组件都有其特定的用途和优势。在面试中,理解并能够熟练运用这些集合类...

    Java Map遍历方法

    3. **转换为集合后遍历**: 另一种方法是将Map转换为Collection,如List或Set,然后再进行遍历。例如: - 将`keySet()`转为List: ```java List&lt;KeyType&gt; keys = new ArrayList(map.keySet()); for (KeyType key ...

    Java集合框架培训资料

    4. **Map接口**:`Map`接口不继承自`Collection`,它包含`key-value`对。`HashMap`是基于哈希表的常用实现,而`TreeMap`则保持键的自然排序或自定义排序。还有`LinkedHashMap`,它维护了插入顺序或访问顺序。 Java...

    JAVA JDK8新概念Stream流及操作集合案例

    - **XXX.stream()**:Java 8为所有实现了`Collection`接口的类(如List、Set、Queue等)添加了`stream()`默认方法,可以直接从集合获取流。 对于Map,可以通过`keySet().stream()`, `values().stream()`或`...

    java集合课程3.docx

    另一类是按`Key-Value`存储的`Map`。 2. **List集合**: - `ArrayList`:基于动态数组实现,适合频繁访问,插入和删除操作较慢。 - `LinkedList`:基于双向链表实现,插入和删除速度快,但访问速度慢。 3. **...

    java集合源码-Java8-CollectionExp:java8集合类源码review

    Java 8为集合接口如`List`, `Set`, `Map`等引入了默认方法,这是一种不需实现类显式覆盖的接口方法。例如,`forEach(Consumer)`和`stream()`方法。这些默认方法使得对集合的操作更加便捷,同时也允许在不破坏向后...

    arangodb-java-driver:官方ArangoDB Java驱动程序

    List&lt;DocumentEntity&lt;String&gt;&gt; documents = collection.all().stream().collect(Collectors.toList()); ``` - 更新文档: ```java DocumentUpdateOptions options = new DocumentUpdateOptions().ignoreRevs...

    30个Java经典的集合面试题!.zip

    23. **什么是Java 8的流(Stream)?** 流是Java 8引入的新特性,它允许以声明式方式处理数据,适用于集合、数组和其他数据源。 24. **如何实现自定义排序的ArrayList?** 创建一个Comparator类,实现compare()...

    集合框架.zip

    集合框架是Java编程语言中的核心组成部分,它是处理对象数组的一种高效方式,提供了各种数据结构(如列表、队列、集、映射等)以及操作这些数据结构的工具。在Java面试中,对集合框架的深入理解和熟练应用是衡量...

    javatraining:Java遍历

    Java遍历是编程中一个非常基础且重要的概念,它涉及到数组、集合以及各种数据结构的访问。在Java中,遍历通常是指通过循环结构来依次访问数据结构中的每个元素,以便进行读取、修改或者执行其他操作。下面将详细介绍...

    Java 学习路线规划图.pdf

    - Map: HashMap(key-value对)。 #### 二、进阶技术与实践 **2.1 异常处理** - **异常分类** - 检查异常: 必须处理的异常。 - 运行时异常: 不必显式捕获或声明抛出。 - **try-catch-finally语句** - try块: ...

    p2理论总结.docx

    - `list.stream().sorted().collect(Collectors.toList())`:使用Stream API排序,返回新列表。 33. 不指定泛型:集合中存放的数据默认为Object类型。 34. Map 集合的遍历方式: - 键值对遍历:`for (Map.Entry...

    kafka-spark

    - `key.deserializer` 和 `value.deserializer`: 指定key和value的反序列化类。 - `group.id`: 消费者组ID。 - `auto.offset.reset`: 当没有初始偏移量或者当前偏移量不再可用时,应该从哪个位置开始消费。 - `...

    python3.6.5参考手册 chm

    PEP 529: Change Windows filesystem encoding to UTF-8 PEP 528: Change Windows console encoding to UTF-8 PEP 520: Preserving Class Attribute Definition Order PEP 468: Preserving Keyword Argument ...

Global site tag (gtag.js) - Google Analytics