一、概述
Map是双列集合,格式:{key1=value1,key2=value2,key3=value3,...},一次需要存异地数据作为一个元素,Map集合的每个元素"key=value"称为一个键值对/键值对对象/一个Entry对象,Map集合也被叫做"键值对集合"。
Map集合的所有键不允许重复,但是值可以重复,键和值是一一对应的,每一个键只能找到自己对应的值。
需要存储一一对应的数据的时候适合使用Map。
Map体系:
Map体系的特点:Map系列集合的特点都是由键决定的,值只是一个附属品,不做要求
1.HashMap(由键决定特点):无序、不重复、无索引
//来一行经典代码
Map<String,Integer> map = new HashMap<>(); //new实现类,Map是接口
//添加数据
map.put("电视",1000);
map.put("电脑",10000);
map.put("电视",1010); //后面的数据会覆盖前面的数据
map.put("手表",10);
map.put(null,null);
System.out.println(map); //输出的是内容:{null=null, 手表=10, 电脑=10000, 电视=1010} 无序不重复无索引
2.LinkedHashMap(由键决定特点):有序、不重复、无索引
Map<String,Integer> map = new LinkedHashMap<>(); //new实现类,Map是接口
//添加数据
map.put("电视",1000);
map.put("电脑",10000);
map.put("电视",1010); //后面的数据会覆盖前面的数据
map.put("手表",10);
map.put(null,null);
System.out.println(map); //输出的是内容:{电视=1010, 电脑=10000, 手表=10, null=null} 有序不重复无索引
3.TreeMap(由键决定特点):按照大小默认升序排序、不重复、无索引
二、Map常用方法
Map是双列集合的祖宗,它的功能是全部双列集合都可以使用的
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
//来一行经典代码
Map<String,Integer> map = new LinkedHashMap<>(); //new实现类,Map是接口
//添加数据
map.put("电视",1000);
map.put("电脑",10000);
map.put("电视",1010); //后面的数据会覆盖前面的数据
map.put("手表",10);
map.put(null,null);
System.out.println(map); //输出的是内容:{电视=1010, 电脑=10000, 手表=10, null=null} 有序不重复无索引
//常用方法
//1.获取集合的大小
System.out.println(map.size());
//2.清空集合
map.clear();
System.out.println(map);
//3.判空
System.out.println(map.isEmpty());
//4.根据键获取对应值
map.put("大大",99); //如果键不存在会返回null
System.out.println(map.get("大大"));
//5.根据键删除整个元素,返回键的值
System.out.println(map.remove("大大"));
System.out.println(map.isEmpty());
//6.判断是否包含某个键
map.put("小小",100);
System.out.println(map.containsKey("小小"));
//7.判断是否包含某个值
System.out.println(map.containsValue(100));
//8.获取Map集合的全部键
System.out.println(map.keySet());
//9.获取Map集合的全部值
System.out.println(map.values());
//10.把其他Map集合的数据倒入自己集合中
Map<String,Integer> map2 = new HashMap<>();
map.putAll(map2);
}
}