2012-06-15 8 views
17

Tôi muốn lưu trữ các giá trị và lấy chúng từ một HashMap Java.Lưu trữ và truy xuất giá trị khóa Java HashMap

Đây là những gì tôi có cho đến nay:

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"); 
} 

Tôi muốn lấy tất cả phím và giá trị từ HashMap như một Bộ sưu tập Java hay bộ tiện ích (ví dụ LinkedList).

Tôi biết tôi có thể nhận được giá trị nếu tôi biết chìa khóa, như thế này:

hm.get(1); 

Có cách nào để lấy giá trị quan trọng như một danh sách?

+1

bạn đã xem xét ý kiến ​​của Javadoc? – EJP

Trả lời

13

Java HashMap giá trị quan trọng ví dụ:

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. 
} 
10

map.keySet() sẽ cung cấp cho bạn tất cả các phím

+1

cảm ơn cho trả lời ur bro ..... vì vậy là nó có thể cho tôi để typecast giá trị trả lại vào một LinkedList ........ ?? –

+0

Giá trị trả lại là một trong các loại 'Set', do đó không trực tiếp nhưng bạn có thể xây dựng từ nó –

1

Bạn có thể sử dụng keySet() để lấy chìa khóa. Bạn cũng nên cân nhắc việc thêm gõ vào Bản đồ của bạn, ví dụ:

Map<Integer, String> hm = new HashMap<Integer, String>(); 
hm.put(1,"godric gryfindor"); 
hm.put(2,"helga hufflepuff"); 
hm.put(3,"rowena ravenclaw"); 
hm.put(4,"salazaar slytherin"); 

Set<Integer> keys = hm.keySet(); 
1
public static void main(String[] args) { 

    HashMap<String, String> hashmap = new HashMap<String, String>(); 

    hashmap.put("one", "1"); 
    hashmap.put("two", "2"); 
    hashmap.put("three", "3"); 
    hashmap.put("four", "4"); 
    hashmap.put("five", "5"); 
    hashmap.put("six", "6"); 

    Iterator<String> keyIterator = hashmap.keySet().iterator(); 
    Iterator<String> valueIterator = hashmap.values().iterator(); 

    while (keyIterator.hasNext()) { 
     System.out.println("key: " + keyIterator.next()); 
    } 

    while (valueIterator.hasNext()) { 
     System.out.println("value: " + valueIterator.next()); 
    } 
} 
32

tôi sử dụng ba cách để lặp một bản đồ. Tất cả các phương thức (keySet, values, entrySet) trả lại bộ sưu tập.

// 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()); 

Vì Java 8 i thường sử dụng Streams với lambda expressions.

// 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())); 
+0

Tính gọn gàng. Cảm ơn nhiều! –

+0

Ví dụ rất rõ ràng. – luizfelippe

2
//import statements 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.TreeMap; 

// hashmap test class 
public class HashMapTest { 

    public static void main(String args[]) { 

     HashMap<Integer,String> hashMap = new HashMap<Integer,String>(); 

     hashMap.put(91, "India"); 
     hashMap.put(34, "Spain"); 
     hashMap.put(63, "Philippines"); 
     hashMap.put(41, "Switzerland"); 

     // sorting elements 
     System.out.println("Unsorted HashMap: " + hashMap); 
     TreeMap<Integer,String> sortedHashMap = new TreeMap<Integer,String>(hashMap); 
     System.out.println("Sorted HashMap: " + sortedHashMap); 

     // hashmap empty check 
     boolean isHashMapEmpty = hashMap.isEmpty(); 
     System.out.println("HashMap Empty: " + isHashMapEmpty); 

     // hashmap size 
     System.out.println("HashMap Size: " + hashMap.size()); 

     // hashmap iteration and printing 
     Iterator<Integer> keyIterator = hashMap.keySet().iterator(); 
     while(keyIterator.hasNext()) { 
      Integer key = keyIterator.next(); 
      System.out.println("Code=" + key + " Country=" + hashMap.get(key)); 
     } 

     // searching element by key and value 
     System.out.println("Does HashMap contains 91 as key: " + hashMap.containsKey(91)); 
     System.out.println("Does HashMap contains India as value: " + hashMap.containsValue("India")); 

     // deleting element by key 
     Integer key = 91; 
     Object value = hashMap.remove(key); 
     System.out.println("Following item is removed from HashMap: " + value); 

    } 

} 
+0

Một ví dụ hoàn chỉnh về các hoạt động cơ bản của HashMap – user3339147

0
void hashMapExample(){ 

    HashMap<String, String> hMap = new HashMap<String, String>(); 
    hMap.put("key1", "val1"); 
    hMap.put("key2", "val2"); 
    hMap.put("key3", "val3"); 
    hMap.put("key4", "val4"); 
    hMap.put("key5", "val5"); 

    if(hMap != null && !hMap.isEmpty()){ 
     for(String key : hMap.keySet()){ 
      System.out.println(key+":"+hMap.get(key)); 
     } 
    } 
} 
+0

, vui lòng thực hiện theo [URL] này (http://stackoverflow.com/help) sẽ hữu ích khi nâng chất lượng nội dung của bạn lên –