java集合对象转map
时间: 2023-09-07 16:14:17 浏览: 98
在Java 8中将List转换为Map对象方法
在Java中,可以使用不同的方法将集合对象转换为Map对象。下面是几种常见的方法:
1. 使用循环遍历集合,并逐个将元素添加到Map中:
```java
List<String> list = new ArrayList<>();
list.add("key1");
list.add("value1");
list.add("key2");
list.add("value2");
Map<String, String> map = new HashMap<>();
for (int i = 0; i < list.size(); i += 2) {
map.put(list.get(i), list.get(i + 1));
}
```
2. 使用Java 8的Stream API和Collectors.toMap()方法:
```java
List<String> list = new ArrayList<>();
list.add("key1");
list.add("value1");
list.add("key2");
list.add("value2");
Map<String, String> map = IntStream.range(0, list.size() / 2)
.boxed()
.collect(Collectors.toMap(i -> list.get(i * 2), i -> list.get(i * 2 + 1)));
```
3. 使用Google Guava库的Maps.uniqueIndex()方法,前提是集合中的元素是键值对对象:
```java
List<Pair<String, String>> list = new ArrayList<>();
list.add(Pair.of("key1", "value1"));
list.add(Pair.of("key2", "value2"));
Map<String, String> map = Maps.uniqueIndex(list, Pair::getKey);
```
4. 使用Apache Commons Collections库的CollectionUtils.toMap()方法,前提是集合中的元素是键值对对象:
```java
List<Pair<String, String>> list = new ArrayList<>();
list.add(Pair.of("key1", "value1"));
list.add(Pair.of("key2", "value2"));
Map<String, String> map = CollectionUtils.toMap(list, Pair::getKey, Pair::getValue);
```
这些方法提供了不同的方式将集合对象转换为Map对象,你可以根据具体的需求选择适合的方法。注意,在使用这些方法之前,确保集合中的元素数量和结构与期望的Map对象一致。
阅读全文