java将两个List合并为一个map,map集合的key为Integer类型,value为String类型
时间: 2023-12-06 08:44:59 浏览: 37
可以使用Java 8的Stream API来将两个List合并成一个Map,代码如下:
```java
List<Integer> keys = Arrays.asList(1, 2, 3);
List<String> values = Arrays.asList("one", "two", "three");
Map<Integer, String> map = IntStream.range(0, keys.size())
.boxed()
.collect(Collectors.toMap(keys::get, values::get));
System.out.println(map);
```
运行结果:
```
{1=one, 2=two, 3=three}
```
这里使用了IntStream.range方法生成一个整数范围流,然后通过boxed方法将其转为Integer类型的流。使用Collectors.toMap方法将两个List中的元素转换为Map的key和value。其中keys::get和values::get表示分别使用keys和values中的元素作为Map的key和value。最终得到的map变量即为合并后的Map集合。
相关问题
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()方法输出结果。
java将两个List合并为一个map,其中一个类型为String,另一个为Int
可以使用Java 8的Stream API来实现将两个List合并为一个Map。代码示例如下:
```java
import java.util.*;
import java.util.stream.Collectors;
public class MergeListsToMap {
public static void main(String[] args) {
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);
}
}
```
这段代码中,我们先定义了两个List:keys和values。然后使用IntStream.range()方法生成一个IntStream,再调用boxed()方法将其转换为一个Stream<Integer>。接着使用Collectors.toMap()方法将两个List合并为一个Map<String, Integer>。在toMap()方法中,我们传入keys::get和values::get作为KeyMapper和ValueMapper,这样就可以将keys和values中的元素一一对应起来,并存储到Map中。最后输出Map的内容。