How to get values and keys from HashMap?

前端 未结 10 1566
無奈伤痛
無奈伤痛 2020-12-08 01:56

I\'m writing a simple edit text in Java. When the user opens it, a file will be opened in JTabbedPane. I did the following to save the files opened:

相关标签:
10条回答
  • 2020-12-08 02:22

    You give 1 Dollar, it gives you a cheese burger. You give the String and it gives you the Tab. Use the GET method of HashMap to get what you want.

    HashMap.get("String");
    
    0 讨论(0)
  • 2020-12-08 02:23

    To get all the values from a map:

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

    To get all the entries from a map:

    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 update:

    To process all values:

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

    To process all entries:

    hash.forEach((key, tab) -> /* do something with key and tab */);
    
    0 讨论(0)
  • 2020-12-08 02:27

    It will work with hash.get("key"); Where key is your key for getting the value from Map

    0 讨论(0)
  • 2020-12-08 02:31

    Use the 'string' key of the hashmap, to access its value which is your tab class.

    Tab mytab = hash.get("your_string_key_used_to_insert");
    
    0 讨论(0)
  • 2020-12-08 02:35

    You have to follow the following sequence of opeartions:

    • Convert Map to MapSet with map.entrySet();
    • Get the iterator with Mapset.iterator();
    • Get Map.Entry with iterator.next();
    • use Entry.getKey() and Entry.getValue()
    # define Map
    for (Map.Entry entry: map.entrySet)
        System.out.println(entry.getKey() + entry.getValue);
    
    0 讨论(0)
  • 2020-12-08 02:38

    Map is internally made up of Map.Entry objects. Each Entry contains key and value. To get key and value from the entry you use accessor and modifier methods.

    If you want to get values with given key, use get() method and to insert value, use put() method.

    #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
    

    If you want to get the set of keys from map, you can use keySet() method

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

    Generally, To get all keys and values from the map, you have to follow the sequence in the following order:

    • Convert Hashmap to MapSet to get set of entries in Map with entryset() method.:
      Set st = map.entrySet();
    • Get the iterator of this set:
      Iterator it = st.iterator();
    • Get Map.Entry from the iterator:
      Map.Entry entry = it.next();
    • use getKey() and getValue() methods of the Map.Entry to get keys and values.
    // 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());
    }
    

    In short, use iterator directly in for

    for(Map.Entry entry:map.entrySet()){
        System.out.print(entry.getKey() + " : " + entry.getValue());
    }
    
    0 讨论(0)
提交回复
热议问题