如何检查java中的LinkedList中是否存在对象?

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()没有做到这一点.

cнŝ*_*ŝdk 5

我认为你最好使用一个特定的类,如果你正在处理坐标,因为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在这里使用实现会更好,它将防止在坐标集中出现重复,因此我们不需要手动检查它.