如何从HashMap中获得的值和键?(How to get values and keys from

2019-09-01 05:49发布

我用Java编写一个简单的编辑文本。 当用户打开它,文件将被打开JTabbedPane 。 我做了以下保存打开的文件:

HashMap<String, Tab> hash = new HashMap<String, Tab>();

Tab将收到的值,如: File file, JTextArea container, JTabbedPane tab

我有一个类叫做Tab

public Tab(File file, JTextArea container, JTabbedPane tab)
{
    this.file = file;
    this.container = container;
    this.tab = tab;
    tab.add(file.getName(), container);
    readFile();
}

现在,在这个SaveFile类,我需要让Tab存储的值HashMap 。 我怎样才能做到这一点?

Answer 1:

要获得从地图中的所有值:

for (Tab tab : hash.values()) {
    // do something with tab
}

要获得从地图中的所有条目:

for ( Map.Entry<String, Tab> entry : hash.entrySet()) {
    String key = entry.getKey();
    Tab tab = entry.getValue();
    // do something with key and/or tab
}

Java的8更新:

要处理的所有值:

hash.values().forEach(tab -> /* do something with tab */);

要处理的所有条目:

hash.forEach((key, tab) -> /* do something with key and tab */);


Answer 2:

Map是内部进行长达Map.Entry对象。 每个Entry包含keyvalue 。 为了从您使用访问和修改方法的输入键和值。

如果你想获得values与给定的key ,使用get()方法和插入值,使用put()方法。

#Define and initialize map;
Map map = new HashMap();
map.put("USA",1)
map.put("Japan",3)
map.put("China",2)
map.put("India",5)
map.put("Germany",4)

map.get("Germany") // returns 4

如果你想获得一组从地图键,您可以使用keySet()方法

Set keys = map.keySet();
System.out.println("All keys are: " + keys);
// To get all key: value
for(String key: keys){
    System.out.println(key + ": " + map.get(key));
}

一般情况下,要想从地图中的所有键和值,你必须遵循以下顺序的序列:

  • 转换HashmapMapSet获得的设置项的Mapentryset()方法:
    Set st = map.entrySet();
  • 获得的这个集合的迭代器:
    Iterator it = st.iterator();
  • 获得Map.Entry从迭代器:
    Map.Entry entry = it.next();
  • 使用getKey()getValue()的方法Map.Entry得到键和值。
// Now access it
Set st = (Set) map.entrySet();
Iterator it = st.iterator();
while(it.hasNext()){
    Map.Entry entry = mapIterator.next();
    System.out.print(entry.getKey() + " : " + entry.getValue());
}

总之,在直接使用iterator

for(Map.Entry entry:map.entrySet()){
    System.out.print(entry.getKey() + " : " + entry.getValue());
}


Answer 3:

你给1美元,它给你一个芝士汉堡包。 你给的字符串,它给你的标签。 使用HashMap中的GET方法来得到你想要的。

HashMap.get("String");


Answer 4:

你可以使用迭代器来做到这一点:

对于键:

for (Iterator <tab> itr= hash.keySet().iterator(); itr.hasNext();) {
    // use itr.next() to get the key value
}

你可以用同样的值使用迭代器。



Answer 5:

使用HashMap中的“字符串”键,进入它的值,它是你的标签类。

Tab mytab = hash.get("your_string_key_used_to_insert");


Answer 6:

随着java8流API:

List values = map.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList());


Answer 7:

你必须遵循opeartions的顺序如下:

  • 转换MapMapSetmap.entrySet();
  • 获取与迭代Mapset.iterator();
  • 获得Map.Entry使用iterator.next();
  • 使用Entry.getKey()Entry.getValue()
# define Map
for (Map.Entry entry: map.entrySet)
    System.out.println(entry.getKey() + entry.getValue);


Answer 8:

for (Map.Entry<String, Tab> entry : hash.entrySet()) {
    String key = entry.getKey();
    Tab tab = entry.getValue();
    // do something with key and/or tab
}

奇迹般有效。



Answer 9:

它将与hash.get(“钥匙”)工作; 其中关键是你从地图获取价值的关键



Answer 10:

为了得到值和键 ,你可以只使用方法值()和HashMap的keySet的()

public static List getValues(Map map) {
    return new ArrayList(map.values());
}

public static List getKeys(Map map) {
    return new ArrayList(map.keySet());
}


文章来源: How to get values and keys from HashMap?
标签: java hashmap