在Java上遍历HashMap的五种最佳方式
Java上遍历HashMap的五种最佳方式如下
- 使用Iterator遍历HashMap EntrySet
- 使用Iterator遍历HashMap KeySet
- 使用For-each循环迭代HashMap
- 使用Lambda表达式遍历HashMap
- 使用Stream API遍历HashMap
示例代码如下
package imoocStudy;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class HashMapExample {
    public static void main(String[] args) {
        Map<Integer,String> namesMap = new HashMap<Integer, String>();
        namesMap.put(1,"Alex");
        namesMap.put(2,"Tom");
        namesMap.put(3,"Jim");
        namesMap.put(4,"Marray");
        namesMap.put(5,"Nacy");
        //1、使用Iterator遍历HashMap EntrySet
        Iterator<Map.Entry<Integer,String>> iterator = namesMap.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry<Integer,String> entry = iterator.next();
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
        System.out.println("#########");
        //2、使用Iterator遍历HashMap KeySet
        Iterator<Integer> iterator1 = namesMap.keySet().iterator();
        while(iterator1.hasNext()){
            Integer key = iterator1.next();
            System.out.println(key + " " + namesMap.get(key));
        }
        System.out.println("#########");
        //3、使用For-each循环遍历HashMap
        for (Map.Entry<Integer,String> entry:namesMap.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
        System.out.println("#########");
        //4、使用Lambda表达式遍历HashMap
        namesMap.forEach((key,value) -> {
            System.out.println(key + " " + value);
        });
        System.out.println("#########");
        //5、使用Stream API遍历HashMap
        namesMap.entrySet().stream().forEach((entry) -> {
            System.out.println(entry.getKey() + " " + entry.getValue());
        });
    }
}
输出结果如下
1 Alex
2 Tom
3 Jim
4 Marray
5 Nacy
#########
1 Alex
2 Tom
3 Jim
4 Marray
5 Nacy
#########
1 Alex
2 Tom
3 Jim
4 Marray
5 Nacy
#########
1 Alex
2 Tom
3 Jim
4 Marray
5 Nacy
#########
1 Alex
2 Tom
3 Jim
4 Marray
5 Nacy

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号