java map按照value值来比较大小并且返回最终结果

代码下载地址: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。

java map按照value值来比较大小并且返回最终结果,布布扣,bubuko.com

时间: 2024-10-24 03:11:35

java map按照value值来比较大小并且返回最终结果的相关文章

Java遍历Map键、值。获取Map大小的方法

Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class HashMapTest2 { public static void main(String[] args) { HashMap map = new HashMap();

js 定义像java一样的map方便取值

js 定义像java一样的map方便取值. 百度有位大神说"js对象本身就是一种Map结构",这真是一段让人欢天喜地的代码. <script> //定义一个全局map var map = {}; var key0 = '0'; var key1 = '1'; map[key0] = '0-真实报文'; map[key1] = '1-虚拟报文'; //row 获取这行的值 ,index 获取索引值 function testJsMap(key){ //如果遍历map for(

Java Map按键(Key)排序和按值(Value)排序

Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator)  传入我们自定义的比较器即可实现按键排序. Java代码   public class MapSortDemo { public static void main(Strin

Java集合篇六:Map中key值不可重复的测试

package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new Has

分享一个java Map实现的cache manager,定时清除缓存起来的值

原文:分享一个java Map实现的cache manager,定时清除缓存起来的值 源代码下载地址:http://www.zuidaima.com/share/1550463676140544.htm 用来存储短暂对象的缓存类,实现Map接口,内部有一个定时器用来清除过期(30秒)的对象. 为避免创建过多线程,没有特殊要求请使用getDefault()方法来获取本类的实例. package com.zuidaima.modules.common.util; import java.util.A

jAVA 获取Map中的值

jAVA 获取Map中的值 Map<String, String> map=new HashMap<String, String>(); map.put("name", "饶伟"); map.put("sex", "男"); map.put("address", "大连"); 方法1 for (Map.Entry<String, String> Map

【JAVA】六 JAVA Map 一 HashMap

[JAVA]六 JAVA Map 一 HashMap JDK API java.util Interface Map Type Parameters: K - the type of keys maintained by this map V - the type of mapped values All Known Subinterfaces: Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMe

JAVA Map集合类简介

了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试· Oracle JDeveloper 10g java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象元素列表.List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的

[Java] Map 集合类简介

Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象元素列表.List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的元素存储方法.Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值.从概念上