代码之家  ›  专栏  ›  技术社区  ›  Thomas

JavaSETINT[]]VS SET<List<整数>

  •  3
  • Thomas  · 技术社区  · 6 年前

    我有以下代码要使用 int[] List<Integer> 但是,作为hashset元素,它们有不同的结果。为什么? 列表<integer> 可以用来比较哈希,但数组不能?

    Set<List<Integer>> set2 = new HashSet();
    set2.add(Arrays.asList(1, 2, 3, 4));
    System.out.println(set2.contains(Arrays.asList(1, 2, 3, 4)));
    
    
    int[] arr1 = {1, 2, 3, 4};
    int[] arr2 = {1, 2, 3, 4};
    Set<int[]> set3 = new HashSet();
    set3.add(arr1);
    System.out.println(set3.contains(arr2));
    

    输出为

    true
    false
    
    1 回复  |  直到 6 年前
        1
  •  5
  •   GhostCat    6 年前

    Arrays.equals(array1, array2) question array1.equals(array2)

    array1.equals() ==