2014-12-08 142 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(); 
}