code: protected static <K, V> HashTrieMap<K, V> makeHashTrieMap(int hash0, CompactHashMap<K, V> elem0, int hash1, CompactHashMap<K, V> elem1, int level, int size) {
          int index0 = (hash0 >>> level) & 0x1f;
          int index1 = (hash1 >>> level) & 0x1f;
          if (index0 != index1) {
              int bitmap = (1 << index0) | (1 << index1);
              @SuppressWarnings("unchecked")
              Object[] elems = new Object[2];
              if (index0 < index1) {
                  elems[0] = unwrap(elem0);
                  elems[1] = unwrap(elem1);
              } else {
                  elems[0] = unwrap(elem1);
                  elems[1] = unwrap(elem0);
              }
              return new HashTrieMap<K, V>(bitmap, elems, size);
          } else {
              @SuppressWarnings("unchecked")
              Object[] elems = new Object[1];
              int bitmap = (1 << index0);
              elems[0] = makeHashTrieMap(hash0, elem0, hash1, elem1, level + 5, size);
              return new HashTrieMap<K, V>(bitmap, elems, size);
          }
      }
docs: utility method to create a HashTrieMap from two leaf CompactHashMaps (HashMap1 or CompactHashMapCollision1) with non-colliding hash code)