见如下代码,实验并留作学习
package OJTest;
import java.util.*;
public class mapSortedTest {
public static void main(String[] args){
Map<String, String> map = new TreeMap<String,String>(
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
}
);
map.put("B","1");
map.put("a","2");
map.put("z","3");
map.put("c","4");
Set<String> keySet = map.keySet();
Iterator<String> iterator = keySet.iterator();
while (iterator.hasNext()){
String key = iterator.next();
System.out.println(key+":"+map.get(key));
}
System.out.println("-------------");
Map<String, String> map1= new TreeMap<String, String>();
map1.put("m", "09");
map1.put("n", "12");
map1.put("p", "02");
map1.put("q", "04");
map1.put("l", "05");
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
for (Map.Entry<String, String> mape:list){
System.out.println(mape.getKey()+":"+mape.getValue());
}
System.out.println("----------------");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("b","45");
map2.put("a","23");
map2.put("d","25");
map2.put("c","53");
map2.put("e","12");
List<Map.Entry<String, String>> list1 = new ArrayList<>(map2.entrySet());
Collections.sort(list1, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
for (Map.Entry map2e: list1){
System.out.println(map2e.getKey()+":"+map2e.getValue());
}
System.out.println("------------");
Map<String, String> map3 = new HashMap<>();
map3.put("b", "56");
map3.put("d", "58");
map3.put("c", "5");
map3.put("E", "54");
map3.put("a", "53");
List<Map.Entry<String, String>> list2 = new ArrayList<>(map3.entrySet());
Collections.sort(list2, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
for (Map.Entry map3e:list2){
System.out.println(map3e.getKey()+":"+map3e.getValue());
}
}
}