java 8 list转成map stream
时间: 2023-11-18 16:57:36 浏览: 132
在Java 8中,我们可以使用stream和Lambda表达式来实现List转Map的需求。具体实现方法如下:
```java
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Jerry", 22));
personList.add(new Person("Mike", 25));
Map<String, Integer> personMap = personList.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
```
上述代码中,我们首先创建了一个Person类的List,然后使用stream()方法将其转换为Stream流。接着,使用collect()方法将Stream流转换为Map集合,其中Person::getName表示将Person对象的name属性作为Map的key,Person::getAge表示将Person对象的age属性作为Map的value。
需要注意的是,如果List中存在重复的key值,那么在转换为Map时会抛出IllegalStateException异常。可以通过使用toMap()方法的第三个参数来指定当key值重复时的处理方式。
相关问题
java stream流list转map
可以使用Java 8中的Stream API和Collectors工具类来将List转换为Map。具体的代码实现如下:
```java
List<MyObject> list = // 获取list数据
Map<String, MyObject> map = list.stream()
.collect(Collectors.toMap(MyObject::getKey, Function.identity()));
```
其中,MyObject是List中存储的对象类型,getKey是MyObject中用于作为Map中key的属性名。可以根据实际情况修改。Function.identity()则为MyObject对象本身,作为Map中的value值。
java中map转list
将 Map 转换为 List 可以使用 Java 8 中的 Stream API,代码如下:
```
Map<String, Integer> map = new HashMap<>();
// 添加元素到 map
List<Entry<String, Integer>> list = map.entrySet().stream()
.collect(Collectors.toList());
```
这将返回一个包含 Map 中所有条目的 List,其中每个条目都是一个 Map.Entry 对象。
阅读全文
相关推荐















