package Demo0319;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/*
* java.util.Map<k,v>集合
* Map集合的特点:
* 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
* 2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
* 3.Map集合中的元素,key是不允许重复的,value是可以何从福德
* 4.Map集合中的元素,key和value是一一对应的
常用的实现类:
* 1.java.util.HashMap<K,V>集合 implements Map<K,V>,特点:
HashMap集合底层是哈希表:查询的速度特别快(1.8之前是数祖+单向链表,1.8之后是数组+单向链表/红黑树(链表的长度超过八)提高查询速度)
HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致;
2.java.util.LinkedHashMap<K,V>集合extends HashMap<k,v>集合
* 特点:
* LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
* LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
*/
public class Demo01Map {
public static void main(String[] args) {
show05();
}
//set方法,取出map集合中的所有元素
private static void show05() {
Map<String,String> map = new HashMap<>();
map.put("Tom","18");
map.put("Com","19");
map.put("Lin","21");
//遍历
Set<String> key = map.keySet();
/* //1、增强for循环
for (String str: key){
System.out.println(str);
}*/
//2、迭代器
Iterator<String> it = key.iterator();
while(it.hasNext()){
String str = it.next();
System.out.println(str+"="+map.get(str));
}
}
//boolean containKey(Object key);判断集合中是否包含指定的值
//包含返回true,不包含返回false
private static void show04() {
Map<String,String> map = new HashMap<>();
map.put("Tom","18");
map.put("Com","19");
map.put("Lin","21");
boolean lin = map.containsKey("Lin");
System.out.println(lin);//true
boolean b = map.containsKey("lin");
System.out.println(b);//false
}
//get 方法,通过键获取元素值
private static void show03() {
Map<String,String> map = new HashMap<>();
map.put("Tom","18");
map.put("Com","19");
map.put("Lin","21");
String lin = map.get("Lin");
System.out.println(lin);//21
String s = map.get("sdia");
System.out.println(s);//null
}
/*public V remove(K key ,V value);把指定的键对应的元素从Map集合中删除,返回被删除的元素的值,如果不存在,返回null*/
private static void show02() {
Map<String,String> map = new HashMap<>();
map.put("Tom","18");
map.put("Com","19");
map.put("Lin","21");
System.out.println(map);//{Com=19, Lin=21, Tom=18}
String lin = map.remove("Lin");
System.out.println(lin);
System.out.println(map);//{Com=19, Tom=18}
}
// public V put(K key ,V value);把指定的键与指定的值添加到集合中
/*返回值V
* 存储键值对的时候,key不重复,返回值V是null
* 存储键值对的时候,key重复,会使用新的value值替换Map中重复的value,返回被替换的value值*/
public static void show01() {
//创建Map集合对象,多态
Map<String,String> map = new HashMap<>();
map.put("Tom","18");
map.put("Com","19");
map.put("Lin","21");
System.out.println(map);//{Com=19, Lin=21, Tom=18}
}
}
Map集合
最新推荐文章于 2025-07-24 10:00:06 发布