java 将两个list一个作为key一个作为value构成一个map
时间: 2024-01-23 08:04:09 浏览: 26
你可以使用Java 8的stream和Collectors类来实现。假设你有两个List,一个作为key,一个作为value,那么代码如下:
```java
List<String> keys = Arrays.asList("key1", "key2", "key3");
List<Integer> values = Arrays.asList(1, 2, 3);
Map<String, Integer> map = IntStream.range(0, keys.size())
.boxed()
.collect(Collectors.toMap(keys::get, values::get));
System.out.println(map);
```
输出结果为:
```
{key1=1, key2=2, key3=3}
```
这段代码使用了IntStream.range方法生成一个数字序列,然后使用boxed方法将其转换为Stream<Integer>。然后使用Collectors.toMap方法将key和value组成的Map收集起来。其中,keys::get和values::get是方法引用,表示从List中获取对应位置的值。
相关问题
java将两个list合并一个map里面 其中一个作为key 另一个作为value
可以使用Java 8的Stream API来实现将两个List合并成一个Map的操作。以下是示例代码:
```
List<String> keys = Arrays.asList("key1", "key2", "key3");
List<Integer> values = Arrays.asList(1, 2, 3);
// 将两个List合并成一个Map
Map<String, Integer> map = IntStream.range(0, keys.size())
.boxed()
.collect(Collectors.toMap(keys::get, values::get));
// 输出Map
System.out.println(map);
```
以上代码中,`keys`和`values`分别代表包含Key和Value的两个List。使用`IntStream.range()`方法生成一个`IntStream`对象,再通过`boxed()`方法将其转换为一个`Stream<Integer>`对象。通过`Collectors.toMap()`方法将`Stream<Integer>`对象转换为一个包含Key-Value对的Map对象。
在`Collectors.toMap()`方法中,`keys::get`表示使用`keys`列表中的元素作为Map的Key,`values::get`表示使用`values`列表中的元素作为Map的Value。
java将两个List合并为一个map
可以使用Java 8的Stream API来将两个List合并为一个Map。假设有两个List,一个存放key,另一个存放value,可以按照以下方式合并为一个Map:
```java
List<String> keys = Arrays.asList("key1", "key2", "key3");
List<Integer> values = Arrays.asList(1, 2, 3);
Map<String, Integer> map = IntStream.range(0, keys.size())
.boxed()
.collect(Collectors.toMap(keys::get, values::get));
System.out.println(map);
```
输出结果为:
```
{key1=1, key2=2, key3=3}
```
在上述代码中,使用IntStream.range()方法生成一个从0到keys.size()-1的整数流,然后将其转换为一个Stream<Integer>类型的流,并使用boxed()方法将其转换为一个Stream<Integer>类型的流。接着,使用Collectors.toMap()方法将两个List合并为一个Map,其中keys::get和values::get分别表示获取key和value的方法。最后使用System.out.println()方法输出结果。