这代码效率怎么样 ,针对LinkedHashMap排序的方法?

知行合一1 发布于 2016/06/14 09:46
阅读 571
收藏 0

怎么给LinkedHashMap的value值做排序有没有什么好方法和建议??

这代码效率怎么样

		LinkedHashMap<String, Double> map = bazhuaYu("");

		
		//转换
		ArrayList<Entry<String, Double>> arrayList = new ArrayList<Map.Entry<String,Double>>(map.entrySet());
		//排序
		Collections.sort(arrayList, new Comparator<Map.Entry<String, Double>>(){
			public int compare(Map.Entry<String, Double> map1,
					Map.Entry<String,Double> map2) {
				return ((map2.getValue() - map1.getValue() == 0) ? 0: (map2.getValue() - map1.getValue() > 0) ? 1: -1);
			}
		});
		//输出
		for (Entry<String, Double> entry : arrayList) {
			System.out.println(entry.getKey() + "\t" + entry.getValue());
		}



加载中
0
xpbob
xpbob
如果只是排序的value的话,直接拿出value的集合,然后排序,或者key,value相反放入TreeMap集合
0
首席打酱油
首席打酱油
ForkJoinTask   数据量大的可以尝试下这玩意   思想和hadoop的mapreduce是一样的
0
Ambitor
Ambitor

这个是JDK Collections.sort的排序解释

Sorts the specified portion of the specified array using a binary
     * insertion sort.  This is the best method for sorting small numbers
     * of elements.  It requires O(n logn) compares, but O(n^2) data
     * movement (worst case).

最好的排序算法 时间复杂度O(n logn)  可以使用合并算法优化,但其实如果你的map里面数据量不大  用哪种都无所谓

返回顶部
顶部