code: public int compareTo(Key other) {
      int result = this.bytes.length - other.getBytes().length;
      for (int i = 0; result == 0 && i < bytes.length; i++) {
        result = this.bytes[i] - other.bytes[i];
      }
      
      if (result == 0) {
        result = Double.valueOf(this.weight - other.weight).intValue();
      }
      return result;
    }
docs: Comparable