TreeMap一种”有序”的Map
import java.util.Map;
import java.util.TreeMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Comparator;
public class SortMap {
public static void main(String[] args) {
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
for (String s : args) {
map.put(s, 1);
}
System.out.println("------------------------------default----------------------------");
print(map);
System.out.println("------------------------------o2 compareTo o1----------------------------");
map = new TreeMap<String, Integer>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
for (String s : args) {
map.put(s, 1);
}
print(map);
System.out.println("------------------------------0----------------------------");
map = new TreeMap<String, Integer>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return 0;
}
});
for (String s : args) {
map.put(s, 1);
}
print(map);
System.out.println("------------------------------1----------------------------");
map = new TreeMap<String, Integer>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return 1;
}
});
for (String s : args) {
map.put(s, 1);
}
print(map);
System.out.println("------------------------------2----------------------------");
map = new TreeMap<String, Integer>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return 2;
}
});
for (String s : args) {
map.put(s, 1);
}
print(map);
System.out.println("------------------------------- -1----------------------------");
map = new TreeMap<String, Integer>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return -1;
}
});
for (String s : args) {
map.put(s, 1);
}
print(map);
System.out.println("------------------------------ -2----------------------------");
map = new TreeMap<String, Integer>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return -2;
}
});
for (String s : args) {
map.put(s, 1);
}
print(map);
}
public static void print(Map<String, Integer> map) {
Iterator<Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Entry<String, Integer> entry = it.next();
System.out.println(entry.getKey() + " --- ");
}
}
}
运行结果图:
从运行结果可以看出,大于0则是正序,小于0是倒序,当是0的时候只会打印一个值,而正序倒序就是自定义的顺序。