第一種遍歷方式鍵找值:
增強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));};}