对Map的按值排序

简介:
JAVA 自带的Map接口是没有排序功能。即使你按照一定的顺序输入,但是输出结果也往往是随机的,对一些特殊的应用很不爽。这时候,可以使用TreeMap类进行转换一下就可以了。如果需要排序的功能,最好在new Map对象的时候,使用TreeMap. 但是如果对已经存在的Map进行按值排序,则需进行转换一下。
代码如下:
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.LinkedHashMap; 
import java.util.List; 
import java.util.Map; 
import java.util.Set; 
import java.util.TreeSet; 
public  class     ArrayTest 

   public  static  void main(String[] args)    
  { 
     Map<String, String> yourMap =  new HashMap<String, String>(); 
    yourMap.put( "3""c"); 
    yourMap.put( "4""d"); 
    yourMap.put( "1""a"); 
    yourMap.put( "2""b"); 

    Map<String, Object> map =  new LinkedHashMap<String, Object>(); 

     List<String> keyList =  new ArrayList<String>(yourMap.keySet()); 
         List<String> valueList =  new ArrayList<String>(yourMap.values()); 
    Set<String> sortedSet =  new TreeSet<String>(valueList); 

    Object[] sortedArray = sortedSet.toArray(); 
          int size = sortedArray.length; 

   for ( int i = 0; i < size; i++) { 
        map.put(keyList.get(valueList.indexOf(sortedArray[i])), sortedArray[i]); 
    } 

        Set ref = map.keySet(); 
        Iterator it = ref.iterator(); 

         while (it.hasNext()) { 
        String i = (String) it.next(); 
        System.out.println(i+ ":"+map.get(i)); 
     } 
  } 

   


本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/290265,如需转载请自行联系原作者
相关文章
|
4月前
|
Go
go map进行有序的排序
go map进行有序的排序
31 0
|
4月前
|
算法 测试技术 C#
【map】【单调栈 】LeetCode768: 最多能完成排序的块 II
【map】【单调栈 】LeetCode768: 最多能完成排序的块 II
|
4月前
|
存储 JavaScript 前端开发
JavaScript实现Map并排序
JavaScript实现Map并排序
97 0
|
4月前
|
C++
c++ set、map的四种自定义排序方法
c++ set、map的四种自定义排序方法
186 0
|
4月前
|
算法 测试技术 C++
【map】【单调栈 】LeetCode768: 最多能完成排序的块 II
【map】【单调栈 】LeetCode768: 最多能完成排序的块 II
|
11月前
|
存储 自然语言处理 数据可视化
按Value对Map进行排序,技术大佬们都在用这个方法
在Java中,Map的排序一般会根据Key或者Value来进行。按照Value对Map进行排序,通常会用在以下几种场景。
|
存储 C++ 容器
<C++>map 容器快速上手|自定义数据类型排序的避坑理解(下)
<C++>map 容器快速上手|自定义数据类型排序的避坑理解
264 0
<C++>map 容器快速上手|自定义数据类型排序的避坑理解(下)
|
Go
go map进行有序的排序
go map进行有序的排序
101 0
|
前端开发 JavaScript
js对map排序,后端返回有序的LinkedHashMap类型时前端获取后顺序依旧从小到大的解决方法
在后端进行时间倒序查询后,返回map类型的数据,在postman获取是这样:
478 0
|
人工智能 BI
L2-039 清点代码库(map+结构体排序)
L2-039 清点代码库(map+结构体排序)
54 0