java.util.Map<k,v>集合
Map集合的特点:
- 1、Map集合是一个双列集合,一个元素包含两个值(key,value)
- 2、Map集合中的元素,key和value的数据类型可以相同,可以不同
- 3、Map集合中的元素,key是不允许重复的,value是可以重复的
- 4、Map集合中的元素,key和value是一一对应的
java.util HashMap<k,v>集合 implement Map<k,v>接口
HashMap集合的特点:
- 1、HashMap集合底层是哈希表,查询的速度特别快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表的长度超过8):提高查询的速度 - 2、hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
java.util.linkedHashMap<k,v>集合 extends HashMap<k,v>集合
linkedHashMap的特点:
- 1、linkedHashMap集合的底层是哈希表+链表(保证迭代的顺序)
- 2、linkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
Map常用方法put:public V put(K key, V value)
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中
返回值:v
存储键值对的时候,key不重复,返回值v是null
存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
例子:
package Map;
import java.util.HashMap;
import java.util.Map;
public class Demo01Map {
public static void main(String args[]){
show01();
show02();
}
private static void show02() {
Map<String,Integer> map = new HashMap<>();
map.put("林志玲", 178);
map.put("赵丽颖", 168);
map.put("杨颖", 165);
Integer a = map.remove("林志饮");
System.out.println(a);
System.out.println(map);
}
private static void show01() {
// 创建Map集合对象,多态
Map<String, String> map = new HashMap<>();
String v1 = map.put("李晨","范冰冰1");
System.out.println("v1:" + v1);
String v2 = map.put("李晨","范冰冰2");
System.out.println("v2: " + v2);
map.put("文章","马伊琍");
map.put("赵丽颖","冯绍峰");
System.out.println(map);
}
}