对于Arrays的deep相关的方法。

关于: deepEquals


  Arrays.equals(Object[] o1, Object[] o2):当是判断数组是引用类型数组的时候,从以下条件判断:
      1、o1与o2指向同一个数组实例时,返回true
      2、在o1,o2都不为空,且长度相等,而且同角标元素同为空,或者equals相等时,返回true


  Arrays.equals(int[] o1, int[] o2):当判断数组是基本类型数组时,以下条件判断:
      1、o1与o2指向同一个数组实例时,返回true
      2、在o1与o2都不为空,且长度相等,而且同角标元素相等(数据类型不同相等方法判断不同)。




  Arrays.deepEquals (Object[] o1, Object[] o2): 判断条件:
      1、o1与o2指向同一个数组实例时,返回true
      2、在o1,o2都不为空,且长度相等,而且同角标元素都补同为空时,进行以下判断:
          当元素为基本数据类型的数组的时候,
              有 Arrays.equals(Object[] e1, Object[] e2)返回为true,则为true。
          当元素为引用数据类型的数组的时候,
              有Arrays.deepEquals (Object[] e1, Object[] e2)返回为true,则为true。
          当元素为其他类型的时候,
              有 e1.equals(e2)为true,则为ture。

关于:deepHashCode(Object a[])

  Arrays.hashCode(Object a[]) :

      从 result = 1;
      然后从第一个元素进行 result = 31 * result + element.HashCode(); 进行循环计算。

  Arrays.deepHashCode(Object a[]):

      从 result = 1;
      然后从第一个元素进行 result = 31 * result + elementHash; 进行循环计算。
          elementHash : 就是下一级元素计算出来的。
              当element为 引用数据类型数组时,elementHash使用 Arrays.deepHashCode(Object a[])计算。
              当element为 基本数据类型数组时,elementHash使用 Arrays.hashCode(Object a[])计算。
              当element为 非数组时,elementHash使用 element.hashCode()计算。



关于:deepToString(Object [] 0)

    例子:
      String [][]s ={{"s","ss"},{"t"}};
      sop(Arrays.deepToString(s)); //[[s, ss], [t]]
      sop(Arrays.deepToString(s[0])); //[s, ss]

      Integer [][]i ={{2,34,6,7,1},{2,3,5,2,0}};
      sop(Arrays.deepToString(i)); //打印结果:[[2, 34, 6, 7, 1], [2, 3, 5, 2, 0]]
      sop(Arrays.deepToString(i[0])); //打印结果:[2, 34, 6, 7, 1]

原文地址:https://www.cnblogs.com/soficircle/p/6686544.html