從零開始的Java知識
- 雙列數據集合(Day1)
- Map
雙列數據集合(Day1)
Map
注意點:
- Map一次加入一個key-value
- 一個key對應一個value
- key與key之間是不重復的
- key-value被稱為鍵值對,鍵值對對象或者是entry對象
常用方法案例:
import java.util.HashMap;
import java.util.Map;public class MapTest {public static void main(String[] args) {Map<String,String> map = new HashMap<>();// 1.put(key,value) 加入或者修改一組鍵值對, 返回修改前的value值// 2.remove(key) 刪除// 3.clear()// 4.containKey(key)// 5.containValue(value)// 6.isEmpty()// 7.size()String preValue = map.put("zhangsan","lisi");System.out.println(preValue);map.put("wangwu","laoliu");preValue = map.put("zhangsan","zhangsan");System.out.println(preValue);System.out.println("=======================");System.out.println(map);map.remove("wangwu");System.out.println(map);boolean containKey = map.containsKey("zhangsan");boolean containValue = map.containsValue("zhangsan");System.out.println("=======================");map.clear();System.out.println(map.size());System.out.println(map.isEmpty());System.out.println("=======================");System.out.println(containKey);System.out.println(containValue);}
}
遍歷方式:
- 遍歷Key獲取Value值
- 遍歷Key Value
- 通過Lambda表達式
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;public class MapTest {public static void main(String[] args) {Map<String, String> map = new HashMap<>();// 1.put(key,value) 加入或者修改一組鍵值對, 返回修改前的value值// 2.remove(key) 刪除// 3.clear()// 4.containKey(key)// 5.containValue(value)// 6.isEmpty()// 7.size()String preValue = map.put("zhangsan", "lisi");map.put("wangwu", "laoliu");// 方式1Set<String> keys = map.keySet();// 方式1.1 迭代器Iterator<String> iterator = keys.iterator();while (iterator.hasNext()) {String key = iterator.next();System.out.println(key + "-" + map.get(key));}// 方式1.2 增強forfor (String key : keys) {System.out.println(key + ":" + map.get(key));}// 方式1.3 Lambda表達式keys.forEach(key -> System.out.println(key + ":" + map.get(key)));System.out.println("--------------------------------");// 方式2Set<Map.Entry<String, String>> entries = map.entrySet();// 方式2.1 迭代器Iterator<Map.Entry<String, String>> iterator1 = entries.iterator();while (iterator1.hasNext()) {// Entry是Map的內部接口Map.Entry<String, String> entry = iterator1.next();System.out.println(entry.getKey() + ":" + entry.getValue());}// 方式2.2 增強forfor (Map.Entry<String, String> entry : entries) {System.out.println(entry.getKey() + ":" + entry.getValue());}// 方式2.3 Lambda表達式entries.forEach(entry -> System.out.println(entry.getKey() + ":" + entry.getValue()));System.out.println("--------------------------------");// 方式3// 底層是遍歷entrySet,向BiConsumer函數式接口的accept方法填充對應的key和valuemap.forEach((key, value) -> System.out.println(key + ":" + value));}
}