1、Map集合
java.util.Map<key, value>集合
Map集合的特点:
1、Map集合是一个双列集合,一个元素包含两个值(key, value)
2、Map集合中的元素,key和value的数据类型可以相同,也可以不同
3、Map集合中的元素,key是不允许重复的,value是可以重复的
4、Map集合中的元素,key和value是一 一对应的。
2、Map常用子类----HashMap,LinkedHashMap
java.util.HashMap<key, value>集合 implements Map<key, value>接口
HashMap集合的特点:
1、HashMap集合底层是哈希表,查询的速度特别的快
jdk1.8之前:数组 + 单向链表
jdk1.8之后:数组 + 单向链表/红黑树(链表的长度超过8):提高查询的速度
2、HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致。
java.util.LinkedHashMap<key, value>集合 extends HashMap<key, value>集合
linkedHashMap集合特点:
1、linkedHashMap集合底层是哈希表 + 链表
2、linkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
3、Map接口中的常用方法
—public v put(K key, V value):把指定的键与指定的值添加到Map集合中。
—public V remove(Object key):把指定的键所对应的键值对元素,在Map集合中删除,返回被删除元素的值。
—public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
—boolean containsKey(Object key)判断集合中是否包含指定的键。
代码实现:
public class Demo01Map {
public static void main(String[] args) {
show04();
}
/*
boolean containsKey(Object key)判断集合中是否包含指定的键。
包含返回true,不包含返回false
*/
private static void show04() {
//创建Map集合对象
Map<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("黄家林",155);
map.put("孟特娇",154);
boolean b1 = map.containsKey("黄家林");
System.out.println(b1); //true
boolean b2 = map.containsKey("汪汪队");
System.out.println(b2); //false
}
/*
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
返回值:V
key存在,v返回对应的value值
key不存在,返回null
*/
private static void show03() {
//创建Map集合对象
Map<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("黄家林",155);
map.put("孟特娇",154);
Integer v1 = map.get("黄家林");
System.out.println("v1 : " + v1); // 155
Integer v2 = map.get("迪丽热巴");
System.out.println("v2 : " + v2); // null
}
/*
public V remove(Object key):把指定的键所对应的键值对元素,在Map集合中删除,返回被删除元素的值。
返回值:V
key存在,v返回被删除的值
key不存在,v返回null
*/
private static void show02() {
//创建Map集合对象
Map<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("黄家林",155);
map.put("孟特娇",154);
System.out.println(map); //{赵丽颖=168, 孟特娇=154, 黄家林=155}
Integer v1 = map.remove("黄家林");
System.out.println("v1:" + v1); //155
System.out.println(map);
Integer v2 = map.remove("黄家林");
System.out.println("v2:" + v2); //null
}
/*
public v put(K key, V value):把指定的键与指定的值添加到Map集合中。
返回值:v
存储键值对的时候,key不重复,返回值v是null
存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
*/
private static void show01() {
Map<String,String> map = new HashMap<>();
String v1 = map