关于把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 中使用 Stream 遍历 Map Java 8 中引入了 Stream 概念, Stream 是一种非常强大的功能,可以使我们更加简单的操作 Map 对象。Map 是 Java 中非常常用的一个集合类型,我们通常也需要去遍历 Map 去获取某些值...
Java 8对`Map`接口进行了扩展,增加了如`map.getOrDefault(key, defaultValue)`,`map.computeIfAbsent(key, mappingFunction)`等方法,使操作更加便捷。 9. **构造函数引用**: 类似于方法引用,构造函数引用...
总之,Set、List和Map在Java集合框架中分别用于存储无序不重复元素、有序可重复元素和键值对。选择哪种集合取决于具体的应用需求,如是否需要保持元素顺序、是否允许重复、以及如何高效地访问和操作元素。理解它们的...
总结来说,Java集合框架为开发者提供了丰富的数据结构以应对不同场景的需要,从简单的List和Set到复杂的Map结构,再到线程安全的集合实现,每个组件都有其特定的用途和优势。在面试中,理解并能够熟练运用这些集合类...
3. **转换为集合后遍历**: 另一种方法是将Map转换为Collection,如List或Set,然后再进行遍历。例如: - 将`keySet()`转为List: ```java List<KeyType> keys = new ArrayList(map.keySet()); for (KeyType key ...
4. **Map接口**:`Map`接口不继承自`Collection`,它包含`key-value`对。`HashMap`是基于哈希表的常用实现,而`TreeMap`则保持键的自然排序或自定义排序。还有`LinkedHashMap`,它维护了插入顺序或访问顺序。 Java...
- **XXX.stream()**:Java 8为所有实现了`Collection`接口的类(如List、Set、Queue等)添加了`stream()`默认方法,可以直接从集合获取流。 对于Map,可以通过`keySet().stream()`, `values().stream()`或`...
另一类是按`Key-Value`存储的`Map`。 2. **List集合**: - `ArrayList`:基于动态数组实现,适合频繁访问,插入和删除操作较慢。 - `LinkedList`:基于双向链表实现,插入和删除速度快,但访问速度慢。 3. **...
Java 8为集合接口如`List`, `Set`, `Map`等引入了默认方法,这是一种不需实现类显式覆盖的接口方法。例如,`forEach(Consumer)`和`stream()`方法。这些默认方法使得对集合的操作更加便捷,同时也允许在不破坏向后...
List<DocumentEntity<String>> documents = collection.all().stream().collect(Collectors.toList()); ``` - 更新文档: ```java DocumentUpdateOptions options = new DocumentUpdateOptions().ignoreRevs...
23. **什么是Java 8的流(Stream)?** 流是Java 8引入的新特性,它允许以声明式方式处理数据,适用于集合、数组和其他数据源。 24. **如何实现自定义排序的ArrayList?** 创建一个Comparator类,实现compare()...
集合框架是Java编程语言中的核心组成部分,它是处理对象数组的一种高效方式,提供了各种数据结构(如列表、队列、集、映射等)以及操作这些数据结构的工具。在Java面试中,对集合框架的深入理解和熟练应用是衡量...
Java遍历是编程中一个非常基础且重要的概念,它涉及到数组、集合以及各种数据结构的访问。在Java中,遍历通常是指通过循环结构来依次访问数据结构中的每个元素,以便进行读取、修改或者执行其他操作。下面将详细介绍...
- Map: HashMap(key-value对)。 #### 二、进阶技术与实践 **2.1 异常处理** - **异常分类** - 检查异常: 必须处理的异常。 - 运行时异常: 不必显式捕获或声明抛出。 - **try-catch-finally语句** - try块: ...
- `list.stream().sorted().collect(Collectors.toList())`:使用Stream API排序,返回新列表。 33. 不指定泛型:集合中存放的数据默认为Object类型。 34. Map 集合的遍历方式: - 键值对遍历:`for (Map.Entry...
- `key.deserializer` 和 `value.deserializer`: 指定key和value的反序列化类。 - `group.id`: 消费者组ID。 - `auto.offset.reset`: 当没有初始偏移量或者当前偏移量不再可用时,应该从哪个位置开始消费。 - `...
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 ...