精华内容
下载资源
问答
  • Map集合按照Value排序(Map value sort)

    千次阅读 2013-01-03 15:01:49
    public static void main(String[] args) { ... Map map = new HashMap(); map.put("001", 2); map.put("002", 6); map.put("003", 9); map.put("004", 1); map.put("005", 9); List> orderList = n
    public static void main(String[] args) {
    		
    		Map<String,Integer> map = new HashMap<String,Integer>();
    		map.put("001", 2);
    		map.put("002", 6);
    		map.put("003", 9);
    		map.put("004", 1);
    		map.put("005", 9);
    		
    		List<Map.Entry<String, Integer>> orderList = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());  
    		Collections.sort(orderList, new Comparator<Map.Entry<String, Integer>>() {   
                public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {   
                    // 降序:o2.getValue()-o1.getValue() 
                	// 升序:o1.getValue()-o2.getValue()
                	return (o2.getValue()-o1.getValue());   
                }   
            });
    		
    		for(Map.Entry<String, Integer> m : orderList){
    			System.out.println(m);
    		}
    	}


    展开全文
  • map集合根据value排序

    2019-06-27 10:23:58
    map集合根据value从大到小排序 `` vgsdz // map集合根据value从大到小排序 public static List sortMapByValue(Map<String, Integer> map) { int size = map.size(); //通过map.entrySet()将map转换为"1.B.1....

    1. 封装排序方法

    	//map集合根据value从大到小排序
    	public static List<String> sortMapByValue(Map<String, Integer> map) {
            int size = map.size();
            //通过map.entrySet()将map转换为"1.B.1.e=78"形式的list集合
            List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(size);
            list.addAll(map.entrySet());
            List<String> keys = list.stream()
                    .sorted(Comparator.comparing(Map.Entry<String, Integer>::getValue).reversed())
                    .map(Map.Entry<String, Integer>::getKey)
                    .collect(Collectors.toList());
            return keys;
        }
    

    2. 调用方法实现排序

    	/**
    	 * 获取最大或最小投票数map
    	 * @param map
    	 * @return
    	 */
    	public List<GVotingMinAndMax> getMaxAndMinMap(GVotingInfo gVotingInfo) {
    		Map<String, Integer> votingMap = new HashMap<String,Integer>();
    		votingMap.put("总裁办", gVotingInfo.getCeoOffice());
    		votingMap.put("营销中心", gVotingInfo.getMarkCenter());
    		votingMap.put("产品与资源管理中心", gVotingInfo.getProductResource());
    		votingMap.put("操作中心", gVotingInfo.getOperatingCenter());
    		votingMap.put("财务中心", gVotingInfo.getFinanceCenter());
    		votingMap.put("人力行政中心", gVotingInfo.getHrCenter());
    		votingMap.put("组织发展部", gVotingInfo.getOrgaDevelopment());
    		votingMap.put("法务部", gVotingInfo.getLegalDepartmen());
    		votingMap.put("数据与信息中心", gVotingInfo.getItCenter());
    		votingMap.put("投资管理部", gVotingInfo.getInvestManageDepa());
    		votingMap.put("签证中心", gVotingInfo.getVisaCenter());
    		votingMap.put("服务质量管理部", gVotingInfo.getQualityServiceDepa());
    		votingMap.put("结算中心", gVotingInfo.getSettlementCenter());
    		votingMap.put("美惠", gVotingInfo.getMhome());
    		List<String> keys = sortMapByValue(votingMap);
    		String key1 = keys.get(0);
    		String key2 = keys.get(13);
    		Integer value1 = (Integer) votingMap.get(key1);
    		Integer value2 = (Integer) votingMap.get(key2);	
    		/*Map<Integer, String> newMap = new LinkedHashMap<Integer, String>();//LinkedHashMap有序存储已排好序的键值对
    		newMap.put(value1,key1);
    		newMap.put(value2,key2);*/
    		List<GVotingMinAndMax> list = new ArrayList<>();
    		GVotingMinAndMax gVotingMinAndMax = new GVotingMinAndMax();
    		gVotingMinAndMax.setMaxVot(key1);
    		gVotingMinAndMax.setMaxScore(value1);
    		gVotingMinAndMax.setMinVot(key2);
    		gVotingMinAndMax.setMinScore(value2);
    		list.add(gVotingMinAndMax);
    		/*for(GVotingMinAndMax model:list) {
    			System.out.println("-----------------------"+model.toString());
    		}*/
    		return list;
    	}
    
    展开全文
  • 代码: // 测试数据 ...Map<String,Integer> map = new HashMap<String,Integer>(); map.put("aaa", 2); map.put("bbb", 3); map.put("ddd", 1); map.put("ccc", 4); // 由于HashMap不属于

    代码:

    public class Test {
        public static void main(String[] args) {
            // 测试数据
            // HashMap是由数组和链表组成的链表散列结构,根据key的hash值来决定存储的位置,这就导致了存储后的元素不会维持插入时的顺序,因此放数据的前后顺序不重要
            Map<String, Integer> map = new HashMap<String, Integer>();
            map.put("aaa", 2);
            map.put("bbb", 3);
            map.put("ddd", 1);
            map.put("ccc", 4);
    
            // 由于HashMap不属于list子类,所以无法使用Collections.sort方法来进行排序,所以我们将hashmap中的entryset取出放入一个ArrayList中
            List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
    
            // 根据entryset中value的值,对ArrayList中的entryset进行排序,最终达到我们对hashmap的值进行排序的效果
            Collections.sort(list, (o1, o2) -> {
                // 升序排序
                return o1.getValue().compareTo(o2.getValue());
            });
    
            //用迭代器对list中的元素遍历
            Iterator<Map.Entry<String, Integer>> iterator = list.iterator();
            while (iterator.hasNext()) {
                Map.Entry<String, Integer> entry = iterator.next();
                String key = entry.getKey();
                int value = entry.getValue();
                System.out.println(key + ":" + value);
            }
        }
    }
    

    结果:

    ddd:1
    aaa:2
    bbb:3
    ccc:4
    

    解释:

    上面的是HashMap排序,当然也可以是TreeMap排序,都是一样的操作,还有我这是转载的,不过也是进行了一些错误改进,如果想更深层及理解的话,可以看这篇https://blog.csdn.net/weixin_43495429/article/details/86630017,不过对于这种做法我认为里面讲解的也不是很清晰

    展开全文
  • 实现思路:将Map key,value模式转换为List key=value模式,然后利用冒泡排序进行排序 Map<Long, Double> historyBuy = new HashMap<Long, Double>(); // 获得map集合 List<Map.Entry<Long,...

    实现思路:将Map key,value模式转换为List key=value模式,然后利用冒泡排序进行排序

            Map<Long, Double> historyBuy = new HashMap<Long, Double>();
            // 获得map集合
    		List<Map.Entry<Long, Double>> list = new ArrayList<Map.Entry<Long, Double>>(historyBuy.size());
            list.addAll(historyBuy.entrySet());
            int j = list.size();
            // 冒泡排序
            for(int i = 0; i < j - 1; i++) {
            	for(int k = 0; k < j - i - 1; k++) {
            		Entry<Long, Double> e1 = list.get(k);
            		Entry<Long, Double> e2 = list.get(k + 1);
            		double d1 = e1.getValue();
            		double d2 = e2.getValue();
            		if(d1 < d2) { // 升序此处为> 降序此处为<
            			Collections.swap(list, k, k + 1); // 交换集合中下标为i 和 k 的数据
            		}
            	}
            }

    使用的Entry为:import java.util.Map.Entry;

    实际效果:

    排序前:[38291=4.0, 38290=1.0, 38289=3.0, 38832=1.0, 38294=507.0, 38293=26.0, 38292=32.0, 38829=1.0, 38830=6.0, 38831=6.0, 38824=2.0, 38287=16.0, 38825=10.0, 38826=9.0]
    排序后:[38294=507.0, 38292=32.0, 38293=26.0, 38287=16.0, 38825=10.0, 38826=9.0, 38830=6.0, 38831=6.0, 38291=4.0, 38289=3.0, 38824=2.0, 38290=1.0, 38832=1.0, 38829=1.0]

    等号左边为原来Map的key,等号右边为原来Map的value,排序方式为降序排序

     

    展开全文
  • Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。这篇文章主要介绍了Java Map 按照Value排序的实现方法,需要的朋友可以参考下
  • java8 Stream Map集合value排序

    千次阅读 2019-12-09 13:25:32
    java8 Stream Map排序 map.entrySet().stream() .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
  • map集合按照value从大到小进行排序

    千次阅读 2017-12-08 17:25:20
     该集合存储键值对,而且要保证键的惟一性 子类:  |--HashTable 底层是哈希数据表结构,不可以使用Null作为键或者值;该集合线程是同步的  |--hashMap 底层是哈希数据表结构,可以使用Null作为键或者...
  • 根据map集合value进行排序

    千次阅读 2018-05-03 17:12:44
    1.map集合类型 Map //自定义比较器 Comparator&lt;Map.Entry&lt;String, Double&gt;&gt; valueComparator = new Comparator&lt;Map.Entry&lt;String, Double&gt;&gt;() { @...
  • 一、理论基点 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black-Tree)的NavigableMap实现,该映射根据其键的自然顺序进行排序,...
  • 在上一讲中, 我们着重的讲了表达式的一些基础知识和基本的使用, 今天我们来实战一把, 对Map的Value值排序进行简化. 在以前的思路我们的做法如下: ... * Map根据value排序; * * @param map *...
  • Map按照value 长度排序

    2019-01-16 11:32:45
    1.Map&lt;String, List&lt;Map&...2.思路,map按照value的长度进行重新排序即可 demo: public static void main(String[] args) { Map&lt;String, List&lt;Map&lt;Str...
  • 1 public static void main(String[] args) { 2 Map<String, Integer> map = new HashMap<String, Integer>(); 3 map.put("os5", 10); 4 map.put("os4", 13); 5 ...
  • Map按照Value排序(升序,降序)
  • Map集合根据key或者value排序

    千次阅读 2018-10-31 14:18:28
    前几天开发项目,需要用到这一个小的技巧点,原以为,自己put进去的会根据自己put时顺序自己拍好的,没想到,Map集合会变乱的。。 //hashmap降順ソート private static List&lt;Map.Entry&lt;String, ...
  • 下面小编就为大家带来一篇java的Map集合中按value值进行排序输出的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Map<String, String> collect = noWhiteListMap.entrySet().stream() .sorted(Comparator.comparing(entry -> entry.getValue().split(",").length,Comparator.reverseOrder())) ...
  • (PS:其实当我们在工作中,有时候会用到这种排序,所以我在这里会稍微介绍一下这种排序,主要运用到了集合类。) 为什么我们需要做排序排序对于我们来说是一件非常基础的事情,排序算法有很多,但是在实际过程中...
  • Map集合排序——根据value对key进行排序 在流水的业务中,码出最优雅的代码。 描述:有若干个键值对格式的json字符串,根据其中的value排序,取出其中的排位靠前的一半以上的key值,json数据为:{“1.B.1.f”...
  • map集合排序

    千次阅读 2019-05-05 20:32:59
    今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序。 一、简单介绍Map 在讲解Map排序之前,我们先来稍微了解下...
  • Map按照value的大小进行排序

    千次阅读 2014-07-10 16:48:43
    Map中的数据按照value的大小进行排序并输出是
  • map中的value进行【降序】排序,返回对应的key的List private List<Long> getMapKeyByValueMax(Map<Long, Integer> map) { List<Map.Entry<Long, Integer>> list = new ArrayList<...
  • Map集合按Key和Value分别排序

    千次阅读 2017-06-23 14:56:07
    Map是键值对的集合接口,根据键得到值,因此不允许键重复,但允许值重复。它的实现类主要包括:HashMap、TreeMap、Hashtable以及LinkedHashMap等。 TreeMap是基于红黑树(Red-Black tree)的NavigableMap实现,该...
  • map集合进行排序

    千次阅读 2016-06-19 16:33:34
    map集合进行排序的时候,我们知道map中是按照key-value键值对来存储数据的。那么排序的时候,就会有两种规则,第一种是按照key来排序,第二种是按照value排序。首先来说下第一种情况,按照key来排序: //按key...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,393
精华内容 50,557
关键字:

map集合按照value排序