如题,讲两个相对高级的java知识点。
对于第一个问题:
http://www.cnblogs.com/szlbm/p/5806226.html
这篇文章讲的太好了。实在无法补充什么了。好文要顶。
2:mapEntries通过强制类型转换创建LinkedList
此时已经排序好了,只需要把aList放入一个HashMap中,但是HashMap不保持顺序,所以放入一个LinkHashMap中。到此结束。
对于第一个问题:
http://www.cnblogs.com/szlbm/p/5806226.html
这篇文章讲的太好了。实在无法补充什么了。好文要顶。
我只说明一点 hashcode的源代码:
//native 简单地讲,一个Native Method就是一个java调用非java代码的接口。剩下的就不多说了。
public native int hashCode();
hashMap 排序,我一直想着一个脑筋急转弯,把大象关进冰箱需要几步,3步。
1:从HashMap恢复entry集合 :
Set<Entry<String,Integer>> mapEntries = aMap.entrySet();
2:mapEntries通过强制类型转换创建LinkedList
List<Entry<String,Integer>> aList = new LinkedList<Entry<String,Integer>>(mapEntries);
3:
Collections.sort(aList, new Comparator<Entry<String,Integer>>() {
@Override
public int compare(Entry<String, Integer> ele1,
Entry<String, Integer> ele2) {
return ele1.getValue().compareTo(ele2.getValue());
}
});
此时已经排序好了,只需要把aList放入一个HashMap中,但是HashMap不保持顺序,所以放入一个LinkHashMap中。到此结束。
Map<String,Integer> aMap2 = new LinkedHashMap<String, Integer>();
for(Entry<String,Integer> entry: aList) {
aMap2.put(entry.getKey(), entry.getValue());
}