Map常用代码
遍历Map的key和value
public void traverseMap() {
Map<Character, Integer> map = new TreeMap<>();
map.put('a', 2);
map.put('b', 4);
map.put('c', 3);
map.put('d', 3);
System.out.println("通过Map.keySet遍历key和value:");
for (Character key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<Character, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Character, Integer> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (Integer v : map.values()) {
System.out.println("value= " + v);
}
}
Map按照Key排序
public void sortByKey() {
Map<Character, Integer> map = new TreeMap<>(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
return o2.compareTo(o1);
}
});
map.put('a', 2);
map.put('b', 4);
map.put('c', 3);
map.put('d', 3);
for (Character key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
}
Map按照value排序
public void sortByValue() {
Map<Character, Integer> map = new TreeMap<>();
map.put('a', 2);
map.put('b', 4);
map.put('c', 3);
map.put('d', 3);
List<Map.Entry<Character, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
@Override
public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
for (Map.Entry<Character, Integer> t : list) {
System.out.println(t.getKey() + ":" + t.getValue());
}
}