HashMap 到 TreeMap

HashMap to TreeMap

我正在使用 TreeMapMap 中的键进行排序。

Map<Byte, List<TagEntity>> hashMap = list.stream().collect(Collectors.groupingBy(TagEntity::getTagType));

Map<Byte, List<TagEntity>> treeMap = new TreeMap<>(Comparator.reverseOrder());

但是如何将HashMap转换成TreeMap呢?

这应该有效:

TreeMap treeMap = new TreeMap<>(hashMap);

或者:

treeMap.putAll(hashMap);

您可以通过将地图供应商传递给 groupingBy 来直接创建 TreeMap

Map<Byte, List<TagEntity>> treeMap = 
    list.stream()
        .collect(Collectors.groupingBy(TagEntity::getTagType,
                                      () -> new TreeMap<Byte, List<TagEntity>>(Comparator.reverseOrder()),
                                      Collectors.toList()));

这是创建哈希图到树图的方法:

HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.putAll(hashMap);

参考这里java-putting-hashmap-into-treemap