小编Aya*_*han的帖子

在 HashSet 中存储坐标

我正在尝试将坐标存储在 HashSet 中并检查我的集合中是否存在坐标。

    HashSet<int[]> hSet = new HashSet<>();
    hSet.add(new int[] {1, 2});
    hSet.add(new int[] {3, 4});
    System.out.println(hSet.contains(new int[] {1, 2}));

>>> false
Run Code Online (Sandbox Code Playgroud)

我对 Java 比较陌生,根据我的理解,上面的输出为 false 是由于比较了 int[] 数组的引用,而不是它们值的逻辑比较。但是,使用 Arrays.equals() 不会使用散列集的散列,因为我必须遍历其所有元素。

我还阅读了其他问题,不建议在集合中使用数组。

因此,如果我希望在 HashSet 中存储坐标对,我应该使用什么数据结构,以便我可以使用哈希码搜索元素?

java hashset coordinates

2
推荐指数
1
解决办法
555
查看次数

标签 统计

coordinates ×1

hashset ×1

java ×1