我有一个对象列表,对象包含名称和值。但是列表包含重复的对象。我想从列表中删除重复的对象。
我试图使用Java流从列表中删除重复的对象。
我正在使用以下代码:
List<NameValueObj> valueLst = new List<NameValueObj>();
valueList.add(finalObj);
List<NameValueObj> finalLst = valueList.stream().distinct().collect(Collectors.toList());
对象低于一个:
public class NameValueObj implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String value;
private int hashCode;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public boolean equals(Object obj) {
NameValueObj nameVal = (NameValueObj)obj;
if(name.equals(nameVal.name) &&
value.equals(nameVal.value))
{
hashCode = nameVal.hashCode;
return true;
}else{
hashCode = super.hashCode();
return false;
}
}
}
下面是实际结果。
{
"start" : 0,
"rows" : 10,
"values" : [ {
"name" : "record one",
"value" : "val one"
}, {
"name" : "record one",
"value" : "val one"
} ],
"numFound" : 2
}
But actual result should as below:
{
"start" : 0,
"rows" : 10,
"records" : [ ],
"values" : [ {
"name" : "record one",
"value" : "val one"
}],
"numFound" : 1
}