Java 使用Map.Entry值对集合进行排序
我有一个Java 使用Map.Entry值对集合进行排序,java,sorting,set,Java,Sorting,Set,我有一个集合如下: Set<Map.Entry<String,String>> set = new HashSet<>(); Set Set=newhashset(); 如何根据Map.Entry的键对该Set进行排序 谢谢。您不能对常规Java集进行排序,因为它没有排序。如果您想要一个有序的集合,一个选项是使用TreeSet。您可以使用自定义比较器创建TreeSet,然后将HashSet添加到其中: TreeSet<Map.Entry<Str
集合
如下:
Set<Map.Entry<String,String>> set = new HashSet<>();
Set Set=newhashset();
如何根据Map.Entry
的键对该Set
进行排序
谢谢。您不能对常规Java
集进行排序,因为它没有排序。如果您想要一个有序的集合,一个选项是使用TreeSet
。您可以使用自定义比较器创建TreeSet
,然后将HashSet
添加到其中:
TreeSet<Map.Entry<String,String>> ts
= new TreeSet<Map.Entry<String,String>>(new Comparator<Map.Entry<String,String>>() {
@Override
public int compare(Map.Entry<String,String> entry1, Map.Entry<String,String> entry2) {
return entry1.getKey().compareTo(entry2.getKey());
}
});
ts.addAll(set);
正如Tim所建议的,为此使用TreeSet
。但是,您不需要定义自己的比较器
实现,只需使用映射中已经定义的比较器
类,像这样实例化树集即可
Set<Map.Entry<String, String>> set = new TreeSet<>(Map.Entry.comparingByKey());
Set Set=newtreeset(Map.Entry.comparingByKey());
这将为您提供一个有序的集合
collections.sort行抛出编译时错误。我想不出来。
Set<Map.Entry<String, String>> set = new TreeSet<>(Map.Entry.comparingByKey());