java8 将list对象的某个属性拿出来当成一个字段并将里面的数据去重
时间: 2024-02-23 21:01:52 浏览: 30
可以使用Java8中的Stream API和Lambda表达式来实现将List对象的某个属性拿出来当做一个字段并将里面的数据去重。例如,假设我们有一个List<Person>对象,每个Person对象有一个name属性,我们要将所有Person对象的name属性拿出来组成一个新的List<String>,并且去重,可以使用以下代码:
```java
List<Person> personList = new ArrayList<>();
// 假设我们已经将Person对象添加到了personList中
List<String> nameList = personList.stream()
.map(Person::getName)
.distinct()
.collect(Collectors.toList());
```
在上面的代码中,map()方法将每个Person对象转换成其name属性,distinct()方法去重,最终使用collect()方法将所有去重后的name属性组成的Stream对象转换成List<String>对象。
相关问题
java8 将list对象的某个属性拿出来当成一个字段
可以使用Java8中的Stream API和Lambda表达式来实现将List对象的某个属性拿出来当做一个字段。例如,假设我们有一个List<Person>对象,每个Person对象有一个name属性,我们要将所有Person对象的name属性拿出来组成一个新的List<String>,可以使用以下代码:
```java
List<Person> personList = new ArrayList<>();
// 假设我们已经将Person对象添加到了personList中
List<String> nameList = personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
```
在上面的代码中,map()方法将每个Person对象转换成其name属性,最终使用collect()方法将所有name属性组成的Stream对象转换成List<String>对象。
java 对list对象里面某个属性去重示例
可以使用 Java 8 的 Stream API 来实现对 List 对象里面某个属性去重。假设有一个 Person 类,其中包含 name 和 age 两个属性,现在要对 List<Person> 中的 name 属性进行去重,可以按照如下方式实现:
```java
List<Person> persons = new ArrayList<>();
// 添加一些 Person 对象到 persons 列表中
List<String> distinctNames = persons.stream().map(Person::getName).distinct().collect(Collectors.toList());
```
上述代码中,首先使用 `map` 方法将 Person 对象转换为 name 属性,然后使用 `distinct` 方法去重,最后使用 `collect` 方法将去重后的结果转换为一个 List<String> 对象,即 distinctNames。
如果要对 List<Person> 中的其他属性去重,只需要将 `map` 方法中的 `Person::getName` 替换为对应的属性访问方法即可。