我有一个结构的哈希图:Map<Integer,Set<class-object>> mymap = new HashMap<>()
映射键中的是整数,值是类对象的集合
类对象中包含以下变量
{
Integer id
String name
}
我想基于class-object.name
变量按字母顺序对地图进行排序。
我们如何排序这张地图?可以对这种类型的哈希图进行排序吗?
答案 0 :(得分:2)
不能。 HashMap无法排序,因为它们是哈希值。
要么使用TreeMap保持键的顺序,要么将数据放在列表中,以便您可以按所需的任何顺序(包括通过调用sort()进行排序的顺序)进行排序。
答案 1 :(得分:1)
将集合平铺到单个列表中,如下所示:
List<MyObject> allObj = myMap.values().forEach(list::addAll);
然后对列表进行排序:
allObj.sort(Comparator.comparing(a -> a.name));