Java比较数组

DD.*_*DD. 10 java arrays primitive

我有两个未知类型的数组...有没有办法检查元素是否相同:

public static boolean equals(Object a , Object b) {
  if (a instanceof int[])
    return Arrays.equals((int[]) a, (int[])b);
  if (a instanceof double[]){
    ////etc
}
Run Code Online (Sandbox Code Playgroud)

我想在没有所有实例检查的情况下这样做....

Tom*_*icz 17

来自Apache Commons的ArrayUtils.isEquals()正是这样做的.它还处理多维数组.

  • 使用非核心库有什么好处吗?如果不是,最好选择标准的Arrays.equals.我只是不要混淆任何寻找所选答案的人.使用标准方法比使用Apache Commons的方法更自然.我选择了Arrays.equals (2认同)
  • 好的 - 看起来问题是使用Arrays.equals和Arrays.deepEquals你不能像ArrayUtils.isEquals那样将数组作为对象传递 - 现在就得到它. (2认同)

Eng*_*uad 11

你应该试试 Arrays.deepEquals(a, b)


Miq*_*uel 5

数组实用程序类可能对此有所帮助:

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Arrays.html

有一种方法:

equals(Object[] a, Object[] a2)
Run Code Online (Sandbox Code Playgroud)

这比较了对象数组.