Java8 list 转 map
时间: 2024-07-04 11:01:10 浏览: 53
在Java 8中,你可以使用`Collectors.toMap()`方法将List转换为Map。这个方法是一个收集器(Collector)函数,它可以根据列表中的元素创建一个新的映射。以下是一个基本的示例,假设你有一个Person类,包含name和age属性,你想根据name创建一个Map:
```java
import java.util.*;
import java.util.stream.Collectors;
class Person {
String name;
int age;
// 构造函数和getter/setter省略
}
List<Person> personList = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 25),
new Person("Charlie", 30)
);
Map<String, Integer> personMap = personList.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(personMap); // 输出: {Alice=20, Bob=25, Charlie=30}
```
在这个例子中,`Person::getName`和`Person::getAge`是方法引用,分别指定了键(name)和值(age)的生成规则。
相关问题
java 8 list转map
要将Java 8中的List转换为Map,您可以使用流和收集器来完成。下面是一个示例代码:
```
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ListToMapExample {
public static void main(String[] args) {
List<String> list = List.of("apple", "banana", "cherry");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(
fruit -> fruit,
fruit -> fruit.length()));
System.out.println(map);
}
}
```
这个示例将一个字符串列表转换为一个以字符串作为键,字符串长度作为值的Map。运行以上代码将输出:`{apple=5, cherry=6, banana=6}`。
Java8list转map
在Java 8中,我们可以使用Stream API来将List转换为Map对象。下面是一个示例代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(Function.identity(), String::length));
```
上面的代码首先创建了一个包含字符串元素的List对象。然后,通过调用stream()方法将List转换为流对象。接下来,使用collect()方法和Collectors.toMap()方法来将流对象转换为Map对象。在toMap()方法中,使用Function.identity()作为键的映射函数,使用String::length作为值的映射函数。
这段代码的作用是将List中的每个字符串作为键,字符串的长度作为对应的值,最终得到一个键值对应的Map对象。
请注意,上面的示例代码是一种常见的方式,但在实际应用中,你可以根据具体需求来自定义映射函数和收集器。
参考资料:
https://www.cnblogs.com/xiaoxi/p/12284259.html
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)