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

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

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

問題描述

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

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)心性能,在真正使用它之前,我想知道下一段代碼是否會(huì)更好,最重要的是:為什么?

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 中按鍵和值對(duì) 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;
}

如果兩者都錯(cuò)了,我該怎么做?

If both are wrong, how should I do that?

推薦答案

您無法控制 HashMap 的排序.一個(gè) LinkedHashMap只是一個(gè)具有可預(yù)測(cè)迭代順序的 HashMap - 這是朝著正確方向邁出的一步,但它仍然使事情過于復(fù)雜.Java 有一個(gè)用于排序地圖的內(nèi)置接口(其名稱并不奇怪 SortedMap),以及幾個(gè)實(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 的最佳方法?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(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(將對(duì)象列表轉(zhuǎn)換為 Map)
Create a HashMap with a fixed Key corresponding to a HashSet. point of departure(用一個(gè)固定的Key對(duì)應(yīng)一個(gè)HashSet創(chuàng)建一個(gè)HashMap.出發(fā)點(diǎn))
HttpMessageConverter exception : RestClientException: Could not write request: no suitable HttpMessageConverter found(HttpMessageConverter 異常:RestClientException:無法寫入請(qǐng)求:找不到合適的 HttpMessageConverter) - IT屋-程序員
主站蜘蛛池模板: a级毛片国产| 日韩欧美中文字幕在线观看 | 在线视频一区二区三区 | 婷婷综合久久 | 久久精品视频网站 | 成人乱人乱一区二区三区软件 | 日本网站免费在线观看 | 亚洲麻豆 | 精久久久 | 亚洲国产精品久久久久婷婷老年 | 欧美精品成人一区二区三区四区 | 瑞克和莫蒂第五季在线观看 | 久久精品视频在线播放 | 欧美一级淫片免费视频黄 | 久久精品视频免费观看 | 亚洲丝袜天堂 | 中文字幕亚洲精品在线观看 | 一级大黄| 日韩精品久久久久 | 欧美黑人巨大videos精品 | 青青草免费在线视频 | 久久精品1 | 成人亚洲视频 | 亚洲一区 中文字幕 | 亚洲精品久久久一区二区三区 | 午夜小电影 | 欧美在线色 | 久久久久久久久91 | 国产精品一区二区在线 | 欧美日韩精品一区二区三区四区 | 欧美日韩亚洲国产 | 亚洲一区精品视频 | 欧美天堂在线观看 | 精品国产免费一区二区三区演员表 | 久久综合伊人 | 精品一区二区三区在线观看国产 | 成人av播放| 做a视频在线观看 | 国产精品久久国产精品99 | 国产精品精品久久久 | 亚洲不卡在线观看 |