说我有一个带有键的哈希表

{Sean, Michael, John, Alan, Zach}

现在我想按以下方式对这些键进行排序

{John, Alan, Michael, Zach, Sean}

上面的名称仅是示例。 我知道我们可以使用TreeSort进行排序。 但是,它仅给出升序或降序排序。 但是我上面的要求没有任何特定的排序方式,但是需要如上所述。 我该如何实现? 请帮助我。

===============>>#1 票数:3

将自定义比较器与Java Bean封装在String周围一起使用,比如说Integer?

===============>>#2 票数:3

hd1的自定义Comparator解决方案是执行此操作的典型方法。 但是,如果只想保留特定的顺序,则可以始终使用LinkedHashMap并按该顺序插入条目。

Map接口的哈希表和链表实现,具有可预测的迭代顺序。 此实现与HashMap的不同之处在于,它维护贯穿其所有条目的双向链接列表。 此链表定义了迭代顺序,通常是将键插入映射的顺序(插入顺序)。

要生成一个映射,其中的条目位于source ,并且键迭代顺序由keysInOrder指定,您可以执行以下操作:

public static <K, V>
Map<K, V> mapWithKeysInOrder(
    Map<K, V> source, Iterable<? extends K> keysInOrder) {
  Map<K, V> output = new LinkedHashMap<K, V>(source.size());
  for (K key : keysInOrder) {
    output.put(key, source.get(key);
  }
  return output;
}

  ask by Damien-Amen translate from so

未解决问题?本站智能推荐: