list根据对象属性去重
时间: 2023-07-07 10:16:34 浏览: 101
可以使用Python中的set()函数结合lambda表达式来根据对象属性去重。
假设有一个对象列表obj_list,其中每个对象都有一个属性name,可以按照以下方式进行去重:
```
new_obj_list = list(set(obj_list, key=lambda obj: obj.name))
```
这里的lambda表达式指定了按照对象的name属性进行去重。set()函数会根据key指定的属性值去重,最后将结果转换回列表类型。
相关问题
javalist根据对象属性去重
您好!针对您的问题,我可以给出以下方案:
可以遍历列表中的元素,将每个元素的指定属性值存储在一个set中,如果set中已经存在该属性值,则删除该元素,否则将该属性值存入set。最后返回去重后的列表即可。
如有更好的解决方案,还请指正。感谢您的提问!
Java中list根据对象属性去重
在Java中,我们可以使用`HashSet`和`Lambda`表达式来根据对象属性去重。
假设有一个对象列表`objList`,其中每个对象都有一个属性`name`,可以按照以下方式进行去重:
```java
List<Obj> newList = objList.stream()
.distinct()
.collect(Collectors.toList());
```
这里的`distinct()`方法会根据对象的`equals()`方法进行去重,我们需要在对象类中重写`equals()`方法,并在其中指定按照`name`属性进行比较:
```java
public class Obj {
private String name;
// getter and setter
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Obj obj = (Obj) o;
return name.equals(obj.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
```
这样就可以根据`name`属性进行去重了。