首頁 > 軟體

Java中Map迴圈遍歷的五種方法實現

2022-07-14 14:04:01

因為Map比較常用,所以今天來總結下Map取值比較常用的幾種遍歷方法。

1、建立一個Enum

public enum FactoryStatus {
    BAD(0,"ou"),
    GOOD(1,"yeah");

    private int status;
    private String description;
    FactoryStatus(int status, String description){
        this.status=status;
        this.description=description;
    }

    public int getStatus() {
        return status;
    }

    public String getDescription(){
        return description;
    }
}

這個Enum作為Map的value。

2、開始遍歷

方法一

Set set = map.keySet();
for (Object o : set) {
    System.out.println(o+""+map.get(o));
}

通過key的set集合進行遍歷,然後通過key來取map的value,此方法用的比較多。

方法二

Set set = map.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()){
    Object next = iterator.next();
    System.out.println("key為:"+next+",value為:"+map.get(next));
}

將key的set集合以迭代器的方式遍歷出來,然後通過key來取map的value。

方法三

Set<Map.Entry<String, FactoryStatus>> entries = map.entrySet();
Iterator<Map.Entry<String, FactoryStatus>> iterator1 = entries.iterator();
while (iterator1.hasNext()){
    Map.Entry<String, FactoryStatus> next = iterator1.next();
    System.out.println("方法三的key為:"+next.getKey()+",value為:"+next.getValue());
}

將Map的鍵值對以迭代器的方式遍歷出來,然後通過.getKey()與.getValue()方法取k、v的值。

方法四

Collection<FactoryStatus> values = map.values();
for (FactoryStatus value : values) {
    System.out.println("方法四的value為:"+value);
}

此方法直接取出map的value並放在collection中,然後將v迴圈遍歷。

方法五

Set<Map.Entry<String, FactoryStatus>> entries = map.entrySet();
for (Map.Entry<String, FactoryStatus> entry : entries) {
    System.out.println("方法五的key為:"+entry.getKey()+",value為:"+entry.getValue());
}

取得所有鍵值對來通過foreach迴圈,遍歷出所有k、v,理論上推薦這種方法,尤其是容量較大的時候。

到此這篇關於Java中Map迴圈遍歷的五種方法的文章就介紹到這了,更多相關Java Map迴圈遍歷內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com