从 ArrayList 中删除重复的元组 - Java
Remove duplicate Tuples from an ArrayList- Java
我想要一个没有重复的唯一元组列表。
List <Tuple> newNonZeros = new ArrayList<>();
在 newNonZeroes 中是结果:[(0,2)(1,2)(1,2)(1,1)(2,2)(2,2)(2,1)]
这是我的尝试:
List <Tuple> newList = new ArrayList<>();
newList.add(newNonZeros.get(0));
for(int i=1; i < newNonZeros.size();i++){
if(newNonZeros.get(i-1)!= newNonZeros.get(i)){
newList.add(newNonZeros.get(i));
}
}
没用。谁能帮帮我...这是一个非常简单的问题
我也试过下面的方法:
...newNonZeros.stream().distinct().collect(Collectors.toList());
覆盖 equals
和 hashCode
Tuple
class:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Tuple tuple = (Tuple) o;
return first == tuple.first &&
second == tuple.second;
}
@Override
public int hashCode() {
return Objects.hash(first, second);
}
那么你可以使用:
List<Tuple> newList = newNonZeros.stream()
.distinct()
.collect(Collectors.toList());
或者使用 for-each 循环:
List<Tuple> newList = new ArrayList<>();
for(Tuple tuple : newNonZeros) {
if(!newList.contains(tuple)) {
newList.add(tuple);
}
}
我想要一个没有重复的唯一元组列表。
List <Tuple> newNonZeros = new ArrayList<>();
在 newNonZeroes 中是结果:[(0,2)(1,2)(1,2)(1,1)(2,2)(2,2)(2,1)]
这是我的尝试:
List <Tuple> newList = new ArrayList<>();
newList.add(newNonZeros.get(0));
for(int i=1; i < newNonZeros.size();i++){
if(newNonZeros.get(i-1)!= newNonZeros.get(i)){
newList.add(newNonZeros.get(i));
}
}
没用。谁能帮帮我...这是一个非常简单的问题
我也试过下面的方法:
...newNonZeros.stream().distinct().collect(Collectors.toList());
覆盖 equals
和 hashCode
Tuple
class:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Tuple tuple = (Tuple) o;
return first == tuple.first &&
second == tuple.second;
}
@Override
public int hashCode() {
return Objects.hash(first, second);
}
那么你可以使用:
List<Tuple> newList = newNonZeros.stream()
.distinct()
.collect(Collectors.toList());
或者使用 for-each 循环:
List<Tuple> newList = new ArrayList<>();
for(Tuple tuple : newNonZeros) {
if(!newList.contains(tuple)) {
newList.add(tuple);
}
}