1. 程式人生 > >Java Map 按Key排序

Java Map 按Key排序

有時候我們業務上需要對map裡面的值按照key的大小來進行排序的時候我們就可以利用如下方法來進行排序了,

package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public   class   Demo   {

    private   HashMap<Integer, Object> map =new HashMap<Integer, Object>();
private Set<Integer> keySet = map.keySet(); public Object get(Integer key) { return map.get(key); } public void put(Integer key, Object value) { map.put(key, value); } @SuppressWarnings("unchecked") public void sort() { List<Integer> list =new ArrayList<Integer>(map.keySet
()); Collections.sort(list, new Comparator<Object>(){ public int compare(Object a, Object b) { return a.toString().toLowerCase().compareTo(b.toString().toLowerCase()); } }); this.keySet = new TreeSet<Integer>(list);
} public Set<Integer> keySet() { return this.key } public static void main(String [] args){ Demo map= new Demo(); map.put(11, "加"); map.put(12, "關"); map.put(13, "注"); map.put(10, "添"); map.put(1, "小"); map.put(8, "記"); map.put(9, "得"); map.put(7, "客"); map.put(5, "的"); map.put(6, "博"); map.put(4, "豆"); map.put(3, "糖"); map.put(2, "小"); System.out.println("排序前"); for (Iterator it =map.keySet().iterator();it.hasNext();){ Integer key= (Integer)it.next(); System.out.println( "key[ " + key + "], value[ " + map.get(key) + "] "); } // System.out.println("排序後"); System.out.println( "\n "); map.sort(); for (Iterator it=map.keySet().iterator();it.hasNext();) { Integer key=(Integer)it.next(); System.out.println( "key[ " + key + "], value[ " + map.get(key) + "] "); } } }

執行效果如下

排序前
key[ 1],   value[ 小] 
key[ 2],   value[ 小] 
key[ 3],   value[ 糖] 
key[ 4],   value[ 豆] 
key[ 5],   value[ 的] 
key[ 6],   value[ 博] 
key[ 7],   value[ 客] 
key[ 8],   value[ 記] 
key[ 9],   value[ 得] 
key[ 10],   value[ 添] 
key[ 11],   value[ 加] 
key[ 12],   value[ 關] 
key[ 13],   value[ 注] 
排序後


key[ 1],   value[ 小] 
key[ 2],   value[ 小] 
key[ 3],   value[ 糖] 
key[ 4],   value[ 豆] 
key[ 5],   value[ 的] 
key[ 6],   value[ 博] 
key[ 7],   value[ 客] 
key[ 8],   value[ 記] 
key[ 9],   value[ 得] 
key[ 10],   value[ 添] 
key[ 11],   value[ 加] 
key[ 12],   value[ 關] 
key[ 13],   value[ 注] 

相關推薦

Java Map Key排序Value排序

Map排序的方式有很多種,這裡記錄下自己總結的兩種比較常用的方式:按鍵排序(sort by key), 按值排序(sort by value)。 1、按鍵排序 jdk內建的java.util包下的TreeMap<K,V>既可滿足此類需求,向其構造方法 Tree

Java Mapkey排序value排序

Java Map 按Key排序和按Value排序 Map排序的方式有很多種,這裡記錄下自己總結的兩種比較常用的方式:按鍵排序(sort by key), 按值排序(sort by value)。 1、按鍵排序 jdk內建的java.util包下的TreeMap<K,V>既可滿

Java Map Key排序

有時候我們業務上需要對map裡面的值按照key的大小來進行排序的時候我們就可以利用如下方法來進行排序了, package test; import java.util.ArrayList; impo

Java Map按鍵(Key)排序值(Value)排序

Map排序的方式有很多種,兩種比較常用的方式:按鍵排序(sort by key), 按值排序(sort by value)。 1、按鍵排序 jdk內建的java.util包下的TreeMap<K,V>既可滿足此類需求,向其構造方法 TreeMap(Comparator

java-mapkey升序排序

/** * 使用 Map按key進行排序 * @param map * @return */ public static Map<Object, Object> sort

[Java]HashMapkey排序value排序的兩種簡便方法

前言 HashMap的儲存是沒有順序的,而是按照key的HashCode實現. key=手機品牌,value=價格,這裡以這個例子實現按名稱排序和按價格排序. Map phone=new HashMap(); phone.put("Apple",729

Map Key排序Value排序

https://www.cnblogs.com/binz/p/6671917.html 一、根據value排序 通用方法 public class MapUtil { public static <K, V extends Comparable<? super V>&g

java中的Map集合Key排序

/** * 按key 升序排序,並輸出結果 */ public static void testSortByKey(){ Map<String, String> map = new H

Java Map按照Key和Value排序【轉】

try lin tor put array ava ble nbsp key package kingtool.sort; import java.util.ArrayList; import java.util.Collections; import java.ut

C++ STL中MapKey排序Value排序

map是用來存放<key, value>鍵值對的資料結構,可以很方便快速的根據key查到相應的value。假如儲存學生和其成績(假定不存在重名,當然可以對重名加以區分),我們用map來進行儲存就是個不錯的選擇。 我們這樣定義,map<string, i

JavaMapValue排序

前言 Map是鍵值對的集合介面,它的實現類主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap 基於紅黑樹(Red-Black tree)的 NavigableMap 實現,該對映根據其鍵的自然順序進行排序,或者

js操作map集合key排序

Json傳到前到的資料如下 : [ {"unitdesc":" 作品為主,同時兼備***館的各項功能。", "unitheatTotal":0, "unitcoldTotal":1176.02, "u

c++中mapkey和value排序

algo second ios ring out 升序 i++ con pre 1 ``` 2 #include<iostream> 3 #include<algorithm> 4 #include<vector> 5 #in

mapkey和value排序

TreeMap: 預設按照key升序進行排序 public static void main(String[] args) { TreeMap<String, Integer> map = new TreeMap<>

map key或value排序

開源框架提供的 org.apache.commons.collections.map.ListOrderedMap 可以按key 排序 AtomicInteger為什麼能夠達到多而不亂,處理高併發應付自如呢? 這是由硬體提供原子操作指令實現的。在非激烈競爭的情況下,開銷

Java Map 通過 key 或者 value 過濾

BE IV test 循環 clu lam version 依賴 lte 今天寫根過濾的時候一下子有點楞眼,先是想到用 Java 原生的 map 循環查出來,但是覺得太 low, 後面思考了一下可以用 Java8 的 Lambda,寫完了,又發現 Google Guava

JAVA map按照key,value比較

mil ont style 倒序 print hashmap lis dma arraylist import java.util.*;public class MapSortDemo { public static void main(String[] args)

C++MapValue排序

turn con pre clas using code ios first esp #include <iostream> #include <map> #include <algorithm> #include <string

[Python筆記]字典key排序value排序的方法

#按Key排序(字母順序) #新建一個字典{手機品牌,價格} phone={'Meizu':2698,'Apple':7299,'Xiaomi':2400,'Samsung':6000} [(key,phone[key]) for key in sorted(phone)] #方法1

[轉載] python的sorted函式,對字典key排序value排序

先來基本介紹一下sorted函式,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。 其中iterable表示可以迭代的物件,例如可以是 dict.items()、dict.keys()等,key是一個函式,用