为什么不是相同的数组,当被认为是相同的字符串传递?

dbc*_*ion 0 java arrays

1)如果我订

int[] set1 = new int[]{1, 2};
int[] set2 = new int[]{1, 2};
Run Code Online (Sandbox Code Playgroud)

我怎么把它们作为字符串传递给我们

System.out.println(Arrays.toString(set1) == Arrays.toString(set2));
Run Code Online (Sandbox Code Playgroud)

它返回false?

2)有没有办法比较整个数组的相等性而不循环遍历数组的每个索引?

Lui*_*oza 9

  1. Strings是Objects,所以应该使用equals以下方法进行比较:

    System.out.println(Arrays.toString(set1).equals(Arrays.toString(set2))); //prints true
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用Arrays#equals比较阵列,注意数组必须具有相同的长度和项目必须等于:==原语(int,long...),并equalsObject参考).