code: public static int arrayHashCode(Object array) {
      if (array == null) {
        return 0;
      }
      IType arrayType = TypeSystem.getFromObject(array);
      int iLen = arrayType.getArrayLength(array);
      int hashCode = 0;
      for (int i = 0; i < iLen; i++) {
        Object value = arrayType.getArrayComponent(array, i);
        if (value != null) {
          IType valueType = TypeSystem.getFromObject(value);
          if (valueType.isArray()) {
            hashCode = 31 * hashCode + hashCode(value);
          } else {
            hashCode = 31 * hashCode + value.hashCode();
          }
        }
      }
      return hashCode * 31 + iLen;
    }
docs: Return the hash code for an array
  
  @param array the array to compute the hash code.