Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。
TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
Map.Entry返回Collections视图。
key排序
TreeMap默认是升序的,如果我们需要改变排序方式,则需要使用比较器:Comparator。Comparator可以对集合对象或者数组进行排序的比较器接口,实现该接口的public compare(T o1,To2)方法即可实现排序,如下:
`import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapTest {
publicstaticvoidmain(String[] args) {
Map map =newTreeMap(
newComparator() {
publicintcompare(Stringobj1,Stringobj2) {
// 降序排序
returnobj2.compareTo(obj1);
}
});
map.put("b","ccccc");
map.put("d","aaaaa");
map.put("c","bbbbb");
map.put("a","ddddd");
Set keySet = map.keySet();
Iterator iter = keySet.iterator();
while(iter.hasNext()) {
Stringkey = iter.next();
System.out.println(key +":"+ map.get(key));
}
}
}`
运行结果如下:
`d:aaaaa
c:bbbbb
b:ccccc
a:ddddd`
以上就是java可以对map的key排序吗的详细内容,希望对你有所帮助。
网友评论