java 对list对象里面某个属性去重示例
时间: 2023-08-20 09:05:11 浏览: 52
可以使用 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` 替换为对应的属性访问方法即可。
相关问题
java 对list对象进行去重示例
可以使用 Java 8 的 Stream API 来对 List 对象进行去重。假设有一个 List<String> 对象,现在要对其中的元素进行去重,可以按照如下方式实现:
```java
List<String> list = new ArrayList<>();
// 添加一些元素到 list 列表中
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
```
上述代码中,首先使用 `distinct` 方法去重,然后使用 `collect` 方法将去重后的结果转换为一个 List<String> 对象,即 distinctList。如果要对 List 中的自定义对象进行去重,可以使用对象的 `equals` 和 `hashCode` 方法来实现,例如:
```java
List<Person> persons = new ArrayList<>();
// 添加一些 Person 对象到 persons 列表中
List<Person> distinctPersons = persons.stream().distinct().collect(Collectors.toList());
```
在上述代码中,Person 类需要正确实现 `equals` 和 `hashCode` 方法,以便 Stream API 可以正确地对 Person 对象进行去重。
java list根据对象的某个属性的值去重
Java中,我们可以使用HashSet来实现List中根据对象的某个属性的值去重。
首先,定义需要去重的对象和属性。假设我们有一个Person类,其中包括name属性,我们需要根据name属性来去重。
其次,遍历List,将每个对象的name属性加入HashSet中,如果HashSet已经包含该name,则说明该对象是重复的,直接删除即可。
示例代码如下:
```java
public class Person {
private String name;
// getters and setters
}
// list去重方法
public static List<Person> removeDuplicates(List<Person> list) {
Set<String> set = new HashSet<>();
List<Person> result = new ArrayList<>();
for (Person person : list) {
if (set.add(person.getName())) {
result.add(person);
}
}
return result;
}
// 测试
List<Person> list = new ArrayList<>();
list.add(new Person("Tom"));
list.add(new Person("Bob"));
list.add(new Person("Tom"));
list.add(new Person("Jack"));
list = removeDuplicates(list);
for (Person p : list) {
System.out.println(p.getName());
}
```
上述代码中,我们首先定义了Person类和name属性,然后定义了removeDuplicates方法,其中set用来存储已加入的name属性,遍历list时,如果set中不存在该name,则将该元素加入到结果集result中,否则直接舍弃。
最后,我们可以通过测试来验证代码的正确性。运行结果为:
```
Tom
Bob
Jack
```
可以看到,Tom被成功去重。