久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 Java 中按鍵排序 HashMap 的最佳方法?

Best way to order an HashMap by key in Java?(在 Java 中按鍵排序 HashMap 的最佳方法?)
本文介紹了在 Java 中按鍵排序 HashMap 的最佳方法?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

這是我第一次在 Java 中訂購 HashMap.我需要按鍵來做到這一點(diǎn),但在我的情況下,按鍵是一個對象,所以我需要按特定字段排序.試圖自己弄清楚,我考慮過繼續(xù)這個簡單的代碼:

This is the first time that I have to order an HashMap in Java. I need to do that by key but in my case the key is an object so I need to order by a specific field. Trying to figure it by my own I've considered to proceed with this simple scratch of code:

private HashMap<SimpleDBField, String> sortTable(HashMap<SimpleDBField, String> row){

    LinkedHashMap<SimpleDBField, String> orderedRow = new LinkedHashMap<SimpleDBField, String>();

    for(int i = 1; i <= row.size(); i ++){
        Iterator iterator = row.entrySet().iterator();

        while(iterator.hasNext()){
            Map.Entry<SimpleDBField, String> entry = (Map.Entry<SimpleDBField, String>) iterator.next();

            if(entry.getKey().getListPosition()==i){
                orderedRow.put(entry.getKey(), entry.getValue());
                break;
            }
        }
    }

    return orderedRow;
}

假設(shè)它可以工作并且我不關(guān)心性能,在真正使用它之前,我想知道下一段代碼是否會更好,最重要的是:為什么?

Assuming that it works and I don't care about performance, before really use it, I wish to know if the next scratch of code could be better and most important: Why?

以下來源示例:如何在 Java 中按鍵和值對 HashMap 進(jìn)行排序

public static <K extends Comparable,V extends Comparable> Map<K,V> sortByKeys(Map<K,V> map){

    List<K> keys = new LinkedList<K>(map.keySet());

    Collections.sort(keys);

    Map<K,V> sortedMap = new LinkedHashMap<K,V>();

    for(K key: keys){
        sortedMap.put(key, map.get(key));

    }

    return sortedMap;
}

如果兩者都錯了,我該怎么做?

If both are wrong, how should I do that?

推薦答案

您無法控制 HashMap 的排序.一個 LinkedHashMap只是一個具有可預(yù)測迭代順序的 HashMap - 這是朝著正確方向邁出的一步,但它仍然使事情過于復(fù)雜.Java 有一個用于排序地圖的內(nèi)置接口(其名稱并不奇怪 SortedMap),以及幾個實(shí)現(xiàn),最流行的是 TreeMap.只需使用它,讓 Java 完成所有繁重的工作:

You cannot control a HashMap's ordering, as you've seen. A LinkedHashMap is just a HashMap with a predictable iteration order - it's a step in the right direction, but it's still over-complicating things. Java has a built-in interface for sorted maps (with the unsurprising name SortedMap), and a couple of implementation, the most popular one being a TreeMap. Just use it and let Java do all the heavy lifting:

public static <K extends Comparable, V> Map<K,V> sortByKeys(Map<K,V> map) {
    return new TreeMap<>(map);
}

這篇關(guān)于在 Java 中按鍵排序 HashMap 的最佳方法?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Convert List of Strings into Map using Java-8 Streams API(使用 Java-8 Streams API 將字符串列表轉(zhuǎn)換為 Map)
Getting data from JSON(從 JSON 獲取數(shù)據(jù))
java linkedhashmap iteration(javalinkedhashmap迭代)
Converting a list of objects to Map(將對象列表轉(zhuǎn)換為 Map)
Create a HashMap with a fixed Key corresponding to a HashSet. point of departure(用一個固定的Key對應(yīng)一個HashSet創(chuàng)建一個HashMap.出發(fā)點(diǎn))
HttpMessageConverter exception : RestClientException: Could not write request: no suitable HttpMessageConverter found(HttpMessageConverter 異常:RestClientException:無法寫入請求:找不到合適的 HttpMessageConverter) - IT屋-程序員
主站蜘蛛池模板: 久久99久久久 | 免费的黄色网址 | 日日干天天干 | 手机看片福利永久 | 成av人片在线观看www | 欧美久久久久久久 | 国产午夜精品一区二区三区 | 男人天堂网av | 日韩激情久久 | 啪啪综合网 | 国产精品久久久久久久久久久久久 | 一区视频在线 | 午夜免费视频 | 中文字幕伊人 | 日本免费毛片 | 成人在线视频免费 | 国产精品久久久久久久久借妻 | 国产激情网 | 天天干天天操天天射 | 国产精品美女在线 | 日韩1级片| 天天躁日日躁bbbbb | 91女人18毛片水多国产 | 色77777| 日韩精品免费视频 | 在线免费观看毛片 | 成人在线观看视频网站 | 午夜爱| 一级片黄色片 | 国产小视频在线播放 | 做爰xxxⅹ性生交 | 综合一区二区三区 | 亚洲欧美视频在线观看 | 免费看黄色一级片 | 日韩高清在线播放 | 91av精品| 97精品视频| 国产精品suv一区二区 | 成人欧美一区二区三区黑人免费 | 久久不雅视频 | 日日夜夜综合 |