Java HashMap键值存储和检索

Arj*_*K P 18 java hashmap

我想存储值并从Java HashMap中检索它们.

这是我到目前为止:

public void processHashMap()
{
    HashMap hm = new HashMap();
    hm.put(1,"godric gryfindor");
    hm.put(2,"helga hufflepuff"); 
    hm.put(3,"rowena ravenclaw");
    hm.put(4,"salazaar slytherin");
}
Run Code Online (Sandbox Code Playgroud)

我想从HashMap中检索所有键和值作为Java集合或实用程序集(例如LinkedList).

如果我知道密钥,我知道我可以获得价值,如下所示:

hm.get(1);
Run Code Online (Sandbox Code Playgroud)

有没有办法将键值检索为列表?

Joo*_*ost 35

我使用这三种方法来迭代地图.所有的方法(keySet,values,entrySet)返回一个集合.

// Given the following map
Map<KeyClass, ValueClass> myMap;

// Iterate all keys
for (KeyClass key  : myMap.keySet()) 
    System.out.println(key);

// Iterate all values
for (ValueClass value  : myMap.values()) 
    System.out.println(value);

// Iterate all key/value pairs
for (Entry<KeyClass, ValueClass> entry  : myMap.entrySet()) 
    System.out.println(entry.getKey() + " - " + entry.getValue());
Run Code Online (Sandbox Code Playgroud)

由于Java 8我经常使用带有lambda表达式的Streams.

    // Iterate all keys
    myMap.keySet().stream().forEach(key -> System.out.println(key));

    // Iterate all values
    myMap.values().parallelStream().forEach(value -> System.out.println(value));

    // Iterate all key/value pairs
    myMap.entrySet().stream().forEach(entry -> System.out.println(entry.getKey() + " - " + entry.getValue()));
Run Code Online (Sandbox Code Playgroud)


小智 14

Java Hashmap键值示例:

public void processHashMap() {
    //add keys->value pairs to a hashmap:
    HashMap hm = new HashMap();
    hm.put(1, "godric gryfindor");
    hm.put(2, "helga hufflepuff");
    hm.put(3, "rowena ravenclaw");
    hm.put(4, "salazaar slytherin");

    //Then get data back out of it:
    LinkedList ll = new LinkedList();
    Iterator itr = hm.keySet().iterator();
    while(itr.hasNext()) {
        String key = itr.next();
        ll.add(key);
    }

    System.out.print(ll);  //The key list will be printed.
}
Run Code Online (Sandbox Code Playgroud)


Jig*_*shi 10

map.keySet() 会给你所有的钥匙