关于Map

map的分类及特点:

HashMap:最常用最基本的Map,根据key和value的形式来存储数据,key是唯一的,根据key可以直接获取它的value,具有很快的访问速度。非同步的。

TreeMap: 与 HashMap类似,区别是能够把它保存的记录根据key排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。key的值不能为null。非同步的。

Hashtable: 与 HashMap类似,区别是:key和value的值均不能为null,支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。

LinkedHashMap: 与 HashMap类似,区别是保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.在遍历的时候会比HashMap慢。非同步的。

map的排序:

<String,Double>类型的HashMap根据Value数值由大到小或小到大进行排序:

List<Map.Entry<String, Double>> mapEntry = new ArrayList<Map.Entry<String, Double>>(topDpmo.entrySet());//根据value的值对map进行排序

Collections.sort(mapEntry, new Comparator<Map.Entry<String, Double>>() {

public int compare(Map.Entry<String, Double> o1,Map.Entry<String, Double> o2) {

double result = o2.getValue() - o1.getValue();//二者的顺序取决于需要把大值居前还是小值居前

if(result > 0){

return 1;

}else if(result == 0){

return 0;

}else{

return -1;

}

}

});

(0)

相关推荐