2014-12-08 138 views
0

HashMap中只有一個鍵和值如何檢索HashMap中值

Map<String, String> hm = new HashMap<>(); 
hm.put("one","ele"); 

現在如何獲取鍵和值從這個並分配給字符串?

+5

爲什麼你使用'HashMap'如果你有一個鍵和值? – spoko 2014-12-08 08:59:37

+0

順便說一下,你不覺得這可愛,這...沒有違法OP,但平庸的問題得到七個類似的答案,而更復雜和整體更好的問題得到一個或沒有? – spoko 2014-12-08 09:18:44

+0

@spoko這也取決於回答的時間。爲什麼要在這裏提到? – Emz 2014-12-08 09:23:01

回答

0

需要使用Iterator on HashMao

public static void printMap(Map hm) { 
    String key = ""; 
    String value = ""; 
    for (Entry<String, String> entry : hm.entrySet()) 
    { 
     key = entry.getKey(); 
     value = entry.getValue(); 
     System.out.println(key + ":" + value); 
    } 
} 
+0

但是這隻有一個鍵,可能 – pals 2014-12-08 09:01:43

+0

不要使用每種語法的原始類型和優選用途來迭代集合和數組。 – mike 2014-12-08 09:03:31

+0

@mike完成並修改代碼 – 2014-12-08 09:12:20

-1
Map.Entry<String, String> entry = hm.entrySet().iterator().next(); 
String result = entry.getKey() + " = " + entry.getValue() 
+0

在Set中找不到'getKey()'方法。 – 2014-12-08 09:05:58

+0

我的不好,我已經更新了我的答案。 – iozee 2014-12-08 09:07:38

+0

謝謝!它的工作 – pals 2014-12-08 10:57:13

1

只需創建一個簡單的CLASSE握住你的數據:

public class Pair { 

private String key; 
private String value; 

public Pair(String k, String v) { 
    key = k 
    value = v; 
} 

public String getKey() { 
    return key; 
} 

public String getValue() { 
    return value; 
} 



} 

而你只需要這個使用它:

Pair pair = new Pair("one", "ele); 
+0

如果'Map <>'只有一個值,那麼你不應該真的使用'Map <>',而是像這樣創建一個容器。迄今最優雅的解決方案。榮譽@StephaneM。不過,我會在構造函數中使用'this'。並正確縮進課程代碼! – Emz 2014-12-08 09:22:10

+0

有時我使用這種方法,這裏的問題是,您需要非常確定這不會通過您的應用程序發展,因爲隨着時間的發展,您將會一遍又一遍地重新發明輪子,寫入依賴類,然後是對的集合,那麼你不確定它是否有一對集合,那麼你將發明自己的集合類...:D – 2014-12-08 09:24:01

2

只需遍歷它們

for (Entry<String, String> entry : hm.entrySet()) 
     { 
      String key = entry.getKey(); 
      String value = entry.getValue(); 
      System.out.println(key + ":" + value); 
     } 

而且你也不需要使用HashMap,因爲你只有1個鍵值對。

+0

爲什麼要一次迭代一個入口地圖? – iozee 2014-12-08 09:11:21

0
for (Map.Entry<String, String> entry : hm.entrySet()){ 
    System.out.println(entry.getKey() + "=" + entry.getValue()); 
} 
0

您需要迭代地圖值。由於地圖無法爲您提供索引訪問值。

Map<String, String> hm = new HashMap<String, String>(); 
hm.put("one","ele"); 

Set<Entry<String, String>> entrySet = hm.entrySet(); 
for (Entry<String, String> entry : entrySet) 
{ 
    System.out.println(entry.getKey()+ " " + entry.getValue()); 
} 

,或者如果你有鑰匙,你可以使用

String value = hm.get(key); 

它會回報你的值對象。

1
if (map.entrySet().size() == 1) { 
    Entry<String, String> next = map.entrySet().iterator().next(); 
}