代码下载地址:http://www.zuidaima.com/share/1830834176347136.htm
原文:java map按照value值来比较大小并且返回最终结果
package com.zuidaima.util; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; public class ValueComparator implements Comparator<Long> { Map<Long, Double> base; public ValueComparator(Map<Long, Double> base) { this.base = base; } public int compare(Long a, Long b) { if (base.get(a).doubleValue() >= base.get(b).doubleValue()) { return -1; } else { return 1; } } public static <K, V extends Comparable<V>> Map<K, V> sortByValues( final Map<K, V> map) { Comparator<K> valueComparator = new Comparator<K>() { public int compare(K k1, K k2) { int compare = map.get(k2).compareTo(map.get(k1)); if (compare == 0) return 1; else return compare; } }; Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator); sortedByValues.putAll(map); return sortedByValues; } public static void main(String[] args) { HashMap<Long, Double> map = new HashMap<Long, Double>(); map.put(1l, 99.5); map.put(2l, 67.2); map.put(3l, 67.5); map.put(4l, 67.6); ValueComparator bvc = new ValueComparator(map); TreeMap<Long, Double> sorted_map = new TreeMap<Long, Double>(bvc); System.out.println("unsorted map: " + map); sorted_map.putAll(map); System.out.println("results: " + sorted_map); Map<Long, Double> sorted_map2 = sortByValues(map); System.out.println("results2: " + sorted_map2); } }
输出结果:
unsorted map: {1=99.5, 2=67.2, 3=67.5, 4=67.6}
results: {1=99.5, 4=67.6, 3=67.5, 2=67.2}
results2: {1=99.5, 4=67.6, 3=67.5, 2=67.2}
通过key比较大小的原理类似,大家改写下就好了。enjoy it。
相关推荐
Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。这篇文章主要介绍了Java Map 按照Value排序的实现方法,需要的朋友可以参考下
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
一些特定情况下需要用map或者list嵌套 这里是一个例子 如何获取嵌套中的参数
主要介绍了Java Map 在put值时value值不被覆盖的解决办法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
Java Map按键排序和按值排序 可以java map按照key值排序
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...
java map 缓存 //毫秒计算 this.timeOut = timeOut*1000;
java Map实现的cache manager,定时清除缓存里面的值,使数据一致保持最新
java Map 转为 Obj Obj 转为 Map
下面小编就为大家带来一篇java的Map集合中按value值进行排序输出的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历 Map中的值,却不能读取key。
主要提供java中的map的遍历实例及效率比较
主要实现Java中Map集合按值排序的几种方法。
private static SortedMap, Integer> mapSortByKey(Map, Integer> unsort_map) { TreeMap, Integer> result = new TreeMap, Integer>() Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort...
map、 key' 和 value 的 取值 and so on
本篇文章主要介绍了Java遍历Map键、值和获取Map大小的方法示例,详细的介绍了Java遍历Map的两种实现方法和大小,具有一定的参考价值,有兴趣的可以了解一下。
java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) {
jsp上使用object[]看不懂吧?写vo太烦琐了?ok,都交给map吧、本工具类的使命就是让map代替所有的vo,让编程变得更美好。 附有详细的使用例子。 java精英团队十年编程精华。
java map转实体可以利用java的反射去封装,于是就在hibernate的工具类下试着封装了下,封装完了之后感觉没必要,这完全就可以提取出来变成一个独立的工具类,而不仅仅局限于hibernate了,这样既可以满足一个hql查询...
List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。 List 适用于按数值索引访问元素的情形。 Map 提供了一个更通用的元素存储方法。 Map 集合类...