Search code examples
javahashmapconverterstreemap

HashMap to TreeMap


I am using TreeMap to sort the keys in the Map.

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

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

But how to convert HashMap to TreeMap?


Solution

  • You can create the TreeMap directly by passing a map supplier to groupingBy:

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