第一种遍历方式键找值:
增强for循环:
通过获取元素中的键,get到对应的值,通过增强for循环获取集合里的键,然后用get方法通过键获取值
代码演示:
import java.text.ParseException;
import java.util.*;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");Set<String> keys = map.keySet();for (String key : keys) {String s = map.get(key);System.out.println(key+"="+s);}}}
迭代器遍历:
import java.text.ParseException;
import java.util.*;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");Set<String> s1 = map.keySet();Iterator<String> it = s1.iterator();//迭代器遍历while(it.hasNext()) {String s = it.next();String value = map.get(s);//获取键里面的值并传递给valueSystem.out.println(s + "=" + value);}}}
第二种遍历方式键值对
通过键值对对象进行遍历
import java.text.ParseException;
import java.util.*;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");//通过一个方法来获取所有的键值对对象,返回一个Set集合Set<Map.Entry<String, String>> entrySet = map.entrySet();for (Map.Entry<String, String> stringStringEntry : entrySet) {String key = stringStringEntry.getKey();String value = stringStringEntry.getValue();System.out.println(key+"="+value);}}}
Lambda表达式遍历:
跟之前的遍历差不多,原理是依次得到每一个键和值,再调用方法
import java.text.ParseException;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");//底层原理:forEach其实就是利用第二种方式进行遍历,依次得到每一个键和值//再调用accept方法map.forEach(new BiConsumer<String, String>() {@Overridepublic void accept(String key, String value) {System.out.println(key+"="+value);}});
System.out.println("------------------------------------");
//我们来简化Lambda表达式map.forEach( (key, value)->System.out.println(key+"="+value));};}