java中遍历HashMap的几种方法

一、使用foreach遍历

1.使用HashMap的.entrySet()方法返回它包含的所有条目的集合,foreach遍历条目集合得到一个个条目Entry

import java.lang.Integer;
import java.lang.Character;
import java.util.HashMap;
import java.util.Map.Entry;
public class HashMapTest {
    public static void main(String[] args) {
        HashMap<Character,Integer> hashMap=new HashMap<>();
        hashMap.put('a',1);
        hashMap.put('b',2);
        hashMap.put('c',3);
        for(Entry<Character,Integer> e:hashMap.entrySet())
        {
            System.out.println(e.getKey()+" "+e.getValue());
        }
    }
}

2.使用HashMap的.keySet()方法返回它包含的所有键的集合,foreach遍历键集合得到一个个键并通过键访问对应的值

import java.lang.Integer;
import java.lang.Character;
import java.util.HashMap;
public class HashMapTest {
    public static void main(String[] args) {
        HashMap<Character,Integer> hashMap=new HashMap<>();
        hashMap.put('a',1);
        hashMap.put('b',2);
        hashMap.put('c',3);
        for(Character k:hashMap.keySet())
        {
            System.out.println(k+" "+hashMap.get(k));
        }
    }
}

3.如果只想得到HashMap的值而不需要键,可以使用.values()方法得到值的合集,并用foreach遍历

import java.lang.Integer;
import java.lang.Character;
import java.util.HashMap;
public class HashMapTest {
    public static void main(String[] args) {
        HashMap<Character,Integer> hashMap=new HashMap<>();
        hashMap.put('a',1);
        hashMap.put('b',2);
        hashMap.put('c',3);
        for(Integer v:hashMap.values())
        {
            System.out.println(v);
        }
    }
}

二、使用迭代器Iterator遍历

1.迭代器迭代的元素是HashMap的条目Entry

import java.lang.Integer;
import java.lang.Character;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
public class HashMapTest {
    public static void main(String[] args) {
        HashMap<Character,Integer> hashMap=new HashMap<>();
        hashMap.put('a',1);
        hashMap.put('b',2);
        hashMap.put('c',3);
        Iterator<Entry<Character,Integer>> iterator=hashMap.entrySet().iterator();
        while(iterator.hasNext())
        {
            Entry<Character,Integer> e=iterator.next();
            System.out.println(e.getKey()+" "+e.getValue());
        }
    }
}

2.迭代器迭代的元素是HashMap的Key,然后根据键访问对应的Value

import java.lang.Integer;
import java.lang.Character;
import java.util.HashMap;
import java.util.Iterator;
public class HashMapTest {
    public static void main(String[] args) {
        HashMap<Character,Integer> hashMap=new HashMap<>();
        hashMap.put('a',1);
        hashMap.put('b',2);
        hashMap.put('c',3);
        Iterator<Character> iterator=hashMap.keySet().iterator();
        while(iterator.hasNext())
        {
            char k=iterator.next();
            int v=hashMap.get(k);
            System.out.println(k+" "+v);
        }
    }
}

三、使用java8的Lambda表达式

import java.lang.Integer;
import java.lang.Character;
import java.util.HashMap;
public class HashMapTest {
    public static void main(String[] args) {
        HashMap<Character,Integer> hashMap=new HashMap<>();
        hashMap.put('a',1);
        hashMap.put('b',2);
        hashMap.put('c',3);
        hashMap.forEach((k,v) -> System.out.println(k+" "+v));
    }
}

你可能感兴趣的:(java中遍历HashMap的几种方法)