code: public static int cmpObjval(final Collection<? extends Comparable> thisone,
                                final Collection<? extends Comparable> thatone) {
      if (thisone == null) {
        if (thatone == null) {
          return 0;
        }
  
        return -1;
      }
  
      if (thatone == null) {
        return 1;
      }
  
      int thisLen = thisone.size();
      int thatLen = thatone.size();
  
      int res = cmpIntval(thisLen, thatLen);
      if (res != 0) {
        return res;
      }
  
      Iterator<? extends Comparable> thatIt = thatone.iterator();
      for (Comparable c: thisone) {
        res = cmpObjval(c, thatIt.next());
  
        if (res != 0) {
          return res;
        }
      }
  
      return 0;
    }
docs: Compare two possibly null objects
  
  @param thisone
  @param thatone
  @return int -1, 0, 1,