如何对Java Hashtable进行排序?

bluesky1年前 ⋅ 212 阅读

ChatGPT的回答仅作参考:

Java Hashtable是一个无序的集合,它不支持排序。如果需要对Hashtable进行排序,可以将其转换为List,然后使用Collections.sort()方法对List进行排序。

以下是将Hashtable转换为List并对其进行排序的示例代码:

```
Hashtable<String, Integer> hashtable = new Hashtable<String, Integer>();
hashtable.put("A", 5);
hashtable.put("B", 2);
hashtable.put("C", 8);

List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(hashtable.entrySet());

Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
    public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
        return (o1.getValue()).compareTo(o2.getValue());
    }
});

for (Map.Entry<String, Integer> entry : list) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
}
```

输出结果为:

```
B : 2
A : 5
C : 8
```

在上面的代码中,我们首先将Hashtable转换为List,然后使用Collections.sort()方法对List进行排序。在排序时,我们使用了一个匿名内部类实现了Comparator接口,以比较Hashtable中的值。最后,我们遍历排序后的List并输出结果。

全部评论: 0

    相关推荐