我有一个列表:
res.send(req.signedCookies.cookie1);
。
private static List<Point> pointList = new ArrayList<>();
=表示3D图形中一个点的对象。
我可以将点数与方法进行比较:
Point
可以说我的列表如下:{a1,a2,b1,a3,c1,c2,a4}
所有对象都是不同的对象(a1 = / = a2 ..),但是具有相同的值(a1,a2 ...表示图形上的完全相同的点)
我想要的是删除列表上彼此相邻的重复@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Point point = (Point) o;
return Arrays.equals(position, point.position);
}
,所以列表看起来像{a,b,a,c,a} >
我尝试过:
Points
但是我缺少元素。
答案 0 :(得分:1)
您基本上需要保留对最后添加的对象的引用。如果您当前要添加的对象相同,则应跳过该对象。
这是使用您的代码的样子:
public List<Point> getUniq() {
List<Point> result = new ArrayList<>();
Point lastAdded = null;
for (int i = 0; i < pointList.size(); i++) {
if (!points.get(i).equals(lastAdded)) { // previously added point was different
lastAdded = points.get(i); // update previously added
result.add(lastAdded); // add to result
}
}
return result;
}
答案 1 :(得分:0)
根据您的描述,您的代码似乎没有满足您的要求。
我想要的是删除彼此相邻的重复点 在列表上,所以列表看起来像{a,b,a,c,a}
下面的代码应该可以完成工作:
public List<Point> getUniq() {
List<Point> l = new ArrayList<>();
l.add(pointList.get(0)); //the first element will always be added
for (int i = 1; i < pointList.size(); i++) {
if (!l.get(l.size()-1).equals(pointList.get(i))) {
l.add(pointList.get(i));
}
}
return l;
}