提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
返回数组是否相等,方法是检查每个元素,即使它们本身是数组。
//package com.nowjava; /**来 自 nowjava.com**/ public class Main { public static void main(String[] argv) { Object[] thisArray = new String[] { "1", "abc", "level", null, "nowjava.com", "asdf 123" }; Object[] thatArray = new String[] { "1", "abc", "level", null, "nowjava.com", "asdf 123" }; System.out .println(valuesAreTransitivelyEqual(thisArray, thatArray)); } /** * Returns whether the arrays are equal by examining each of their elements, even if they are * arrays themselves. * * @param thisArray Object[] * @param thatArray Object[] * @return boolean */ public static final boolean valuesAreTransitivelyEqual( /** 来 自 nowjava - 时代Java **/ Object[] thisArray, Object[] thatArray) { if (thisArray == thatArray) return true; if ((thisArray == null) || (thatArray == null)) return false; if (thisArray.length != thatArray.length) return false; for (int i = 0; i < thisArray.length; i++) { if (!areEqual(thisArray[i], thatArray[i])) return false; // recurse if req'd } return true; } /** * A comprehensive isEqual method that handles nulls and arrays safely. * * @param value Object * @param otherValue Object * @return boolean */ public static final boolean areEqual(Object value, Object otherValue) { if (value == otherValue) return true; if (value == null) return false; if (otherValue == null) return false; if (value.getClass().getComponentType() != null) return arraysAreEqual(value, otherValue); return value.equals(otherValue); } /** * Returns true if the objects are array instances and each of their elements compares * via equals as well. * * @param value Object * @param otherValue Object * @return boolean */ public