最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中如何對(duì)Map的key順序排序

 更新時(shí)間:2023年11月01日 10:31:27   作者:一只alone  
大家都知道Map排序的方式有很多種,下面這篇文章主要給大家介紹了關(guān)于java中如何對(duì)Map的key順序排序的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.使用List的默認(rèn)方法 sort 或者 Collections.sort 進(jìn)行排序這種方法需要對(duì)map的key進(jìn)行轉(zhuǎn)換

Map<String,String> map=new HashMap<>();
map.put("4","maliu");
map.put("1","張三");
map.put("3","李四");
map.put("7","王五");
map.put("9","趙六");
map.put("2","老六");
ArrayList<Map.Entry<String, String>> entries = new ArrayList<>(map.entrySet());
//排序條件
entries.sort(Comparator.comparingInt(entry -> Integer.parseInt(entry.getKey())));
//Collections.sort(entries, Comparator.comparingInt(entry -> Integer.parseInt(entry.getKey())));
HashMap<String, String> news = new LinkedHashMap<>();
for (Map.Entry<String, String> entry : entries) {
    news.put(entry.getKey(),entry.getValue());
}
news.forEach((a,b)->{
    System.out.printf("k -> %s | v -> %s%n", a,b);
});

2.使用TreeMap的特性進(jìn)行排序

Map<String,String> map=new HashMap<>();
map.put("4","maliu");
map.put("1","張三");
map.put("3","李四");
map.put("7","王五");
map.put("9","趙六");
map.put("2","老六");
TreeMap<String, String> treeMap = new TreeMap<>(map);
treeMap.forEach((k,v)->{
    System.out.printf("k -> %s | v -> %s%n", k,v);
});

2.1.在TreeMap基礎(chǔ)上自定義排序方法

Map<String,String> map=new HashMap<>();
map.put("1","maliu");
map.put("22","張三");
map.put("4444","李四");
map.put("666666","王五");
map.put("55555","趙六");
map.put("333","老六");
//TreeMap<String, String> treeMap = new TreeMap<>((o1,o2)-> o2.length()-o1.length());
//TreeMap<String, String> treeMap2 = new TreeMap<>((o1,o2)-> o1.length()-o2.length());
TreeMap<String, String> treeMap = new TreeMap<>(Comparator.comparingInt(String::length));
treeMap.putAll(map);
treeMap.forEach((k,v)->{
    System.out.printf("k -> %s | v -> %s%n", k,v);
});

java中Map中根據(jù)key的大小進(jìn)行排序?qū)嵗?/strong>

需要對(duì)鍵值對(duì)(key-value)的key進(jìn)行排序的時(shí)候,可以利用TreeMap來(lái)操作,TreeMap默認(rèn)情況下就是按照key的大小來(lái)進(jìn)行排序的(升序),所以只需要使用TreeMap來(lái)存儲(chǔ)key-value對(duì)時(shí),就是排好序的。想要按序取數(shù)據(jù)時(shí),利用Iterator。

  • 升序Demo
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
public class Main {
	public static void main(String args[]) {		
		System.out.println("kaishi");
		Random random = new Random();
		Map<Double, Integer> map = new TreeMap<Double, Integer>();
		//隨機(jī)產(chǎn)生數(shù)據(jù),存入到map中;默認(rèn)情況下時(shí)升序的。
		for(int i=0;i<100;i++) {
			map.put(random.nextDouble()*1000,random.nextInt(1000));
		}		
		//使用Iterator來(lái)取key-value對(duì);
		Set<Double> keySet = map.keySet();
	    Iterator<Double> iter = keySet.iterator();
	    while (iter.hasNext()) {
	        Double key = iter.next();
	        System.out.println(key + ":" + map.get(key));  //打印結(jié)果,會(huì)發(fā)現(xiàn)key都是按升序輸出的
	        }
	}
}

  • 降序Demo
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import java.util.Comparator;

public class Main {
	public static void main(String args[]) {		
		System.out.println("kaishi");
		Random random = new Random();
		Map<Double, Integer> map = new TreeMap<Double, Integer>(
				new Comparator<Double>(){
        			@Override
        			public int compare(Double o1, Double o2) {
        				//利用Comparator來(lái)實(shí)現(xiàn)降序;
        				return (int) (o2-o1);
        			}
           });
		for(int i=0;i<100;i++) {
			map.put(random.nextDouble()*1000,random.nextInt(1000));
		}		
		Set<Double> keySet = map.keySet();
	    Iterator<Double> iter = keySet.iterator();
	    while (iter.hasNext()) {
	        Double key = iter.next();
	        System.out.println(key + ":" + map.get(key));//打印結(jié)果,會(huì)發(fā)現(xiàn)key都是按降序輸出的
	        }
	}
}

總結(jié) 

到此這篇關(guān)于java中如何對(duì)Map的key順序排序的文章就介紹到這了,更多相關(guān)java對(duì)Map的key排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaWeb中獲取表單數(shù)據(jù)及亂碼問(wèn)題的解決方法

    JavaWeb中獲取表單數(shù)據(jù)及亂碼問(wèn)題的解決方法

    這篇文章主要介紹了JavaWeb中獲取表單數(shù)據(jù)及亂碼問(wèn)題的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • mybatis連接MySQL8出現(xiàn)的問(wèn)題解決方法

    mybatis連接MySQL8出現(xiàn)的問(wèn)題解決方法

    這篇文章主要介紹了mybatis連接MySQL8出現(xiàn)的問(wèn)題解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Java創(chuàng)建對(duì)象的幾種方法

    Java創(chuàng)建對(duì)象的幾種方法

    這篇文章主要為大家詳細(xì)介紹了Java創(chuàng)建對(duì)象的幾種方法,使用new創(chuàng)建、使用object.clone()創(chuàng)建、使用反序列化創(chuàng)建等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • ThreadLocal內(nèi)存泄露的產(chǎn)生原因和處理方法

    ThreadLocal內(nèi)存泄露的產(chǎn)生原因和處理方法

    ThreadLocal 的內(nèi)存泄漏問(wèn)題通常發(fā)生在使用 ThreadLocal 存儲(chǔ)對(duì)象時(shí),尤其是在多線程環(huán)境中,線程池中的線程復(fù)用可能導(dǎo)致一些資源沒(méi)有及時(shí)清理,從而引發(fā)內(nèi)存泄漏,所以本文給大家介紹了ThreadLocal內(nèi)存泄露的產(chǎn)生原因和處理方法,需要的朋友可以參考下
    2024-12-12
  • ant使用指南詳細(xì)入門(mén)教程

    ant使用指南詳細(xì)入門(mén)教程

    這篇文章主要介紹了ant使用指南詳細(xì)入門(mén)教程,本文詳細(xì)的講解了安裝、驗(yàn)證安裝、使用方法、使用實(shí)例、ant命令等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • 解決json字符串序列化后的順序問(wèn)題

    解決json字符串序列化后的順序問(wèn)題

    這篇文章主要介紹了解決json字符串序列化后的順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • SpringMVC mybatis整合實(shí)例代碼詳解

    SpringMVC mybatis整合實(shí)例代碼詳解

    這篇文章主要介紹了springmvc與mybatis實(shí)例詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • SpringBoot熱部署和整合Mybatis的過(guò)程

    SpringBoot熱部署和整合Mybatis的過(guò)程

    熱部署,就是在應(yīng)用正在運(yùn)行的時(shí)候升級(jí)軟件,卻不需要重新啟動(dòng)應(yīng)用,本文給大家詳細(xì)介紹SpringBoot熱部署和整合Mybatis的過(guò)程,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • java_時(shí)間戳與Date_相互轉(zhuǎn)化的實(shí)現(xiàn)代碼

    java_時(shí)間戳與Date_相互轉(zhuǎn)化的實(shí)現(xiàn)代碼

    本篇文章是對(duì)java_時(shí)間戳與Date_相互轉(zhuǎn)化的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下如下。
    2016-11-11
  • idea中maven項(xiàng)目模塊變成灰色原因及解決方案

    idea中maven項(xiàng)目模塊變成灰色原因及解決方案

    這篇文章主要介紹了idea中maven項(xiàng)目模塊變成灰色原因及解決方案,文中通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03

最新評(píng)論

拜泉县| 唐河县| 嘉定区| 九江市| 略阳县| 敦化市| 金山区| 敦化市| 平安县| 顺平县| 新晃| 谢通门县| 大同县| 长丰县| 普洱| 德昌县| 郧西县| 锦州市| 施秉县| 邛崃市| 嘉定区| 枣阳市| 泽库县| 乌兰浩特市| 石景山区| 怀仁县| 南雄市| 静乐县| 朔州市| 永泰县| 阆中市| 聂荣县| 徐水县| 高平市| 新竹县| 繁峙县| 隆昌县| 水富县| 连州市| 孝昌县| 贵德县|