use*_*433 4 java contains linked-list
LinkedList包含一组Integer[].Integer[]列表中的每个都有2个数字.链表的前面:
Integer[]{1,2}, Integer[]{2,3}.....
Run Code Online (Sandbox Code Playgroud)
然后再添加另一个Integer[]到此LinkedList,我wanto检查,如果另一个Integer[]具有相同的数据已经存在.
例如:要添加的对象= Integer[] {2,3}.但这已经存在于LinkedList中.
所以我想避免添加这个.
如何验证该对象是否已存在?是否有可以使用的内置功能?contains()没有做到这一点.
我认为你最好使用一个特定的类,如果你正在处理坐标,因为Integer[]只有两个数字是没用的,并且会导致一些问题contains()以及其他List类似的方法.sort().
您最好创建一个Coordinate类,它将包含两个值:
public class Coordinate{
private int x;
private int y;
//getters and setters, constructor
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof Coord)) {
return false;
}
Coordinate coord = (Coordinate) o;
return coord.x == x &&
coord.y == y;
}
@Override
public int hashCode() {
int result = 17;
result = 31 * result + x;
result = 31 * result + y;
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
LinkedList<Coordinate>
Run Code Online (Sandbox Code Playgroud)
注意:
请注意,Set在这里使用实现会更好,它将防止在坐标集中出现重复,因此我们不需要手动检查它.
| 归档时间: |
|
| 查看次数: |
1115 次 |
| 最近记录: |