一、映射
1、概念
Map<K,V> 提供了一个更通用的元素存储方法,K 代表键,V代表值 ,键不能重复 ,把这一对数据(键和值)统称为键值对,一个映射可以由多个键值对组成
为了方便操作键和值,就把键值对抽取成了一个类—Map.Entry ,Entry对象都是具体的键值对,一个映射可以有多个Entry对象组成的
2、方法
-
创建映射对象
Map<String , Integer> map=new HashMap<>();
-
添加元素
map.put(“a”, 1);
map.put(“b”, 2);
-
判断映射是否包含键
boolean b = map.containsKey(“c”)
-
判断是否包含值
boolean b = map.containsValue(7)
-
把映射中的键值对(Entry对象)存放Set集合中进行返回
Set<Map.Entry<String , Integer>> s=map.entrySet();
-
根据键获取值—键不存在返回null
map.get(“u”)
-
返回的把所有的键存放到Set集合中
Set set=map.keySet();
-
根据键删除键值对
map.remove(“u”, 3);
-
把映射的所有值存储到一个集合中进行返回
Collection c = map.values();
2、映射的遍历
-
用键遍历
Set<String> set=map.keySet(); //遍历键 //增强for循环 for (String string : set) { //由键获取指定值 System.out.println(string+"="+map.get(string)); }
-
用键值对遍历
Set<Map.Entry<String, Integer>> set=map.entrySet(); //遍历所有的键值对---遍历Set集合 for (Entry<String, Integer> entry : set) { //每个entry就是具体的entry对象就是具体的键值对 System.out.println(entry.getKey()+"="+entry.getValue()); } //开发中 for(Map.Entry<String, Integer> entry:map.entrySet()) //每个entry就是具体的entry对象就是具体的键值对 System.out.println(entry.getKey()+"="+entry.getValue()); }
3、实现类
-
HashMap
1、可以允许存储null值和null键 2、默认初始容量为16 3、默认扩容是增加一倍 4、如果指定初始容量,指定的值在2`n~2`n+1,那么底层真实的容量就是2`n+1 5、异步式线程不安全的集合
-
HashTable
1、不允许存储null值和null键 2、默认初始容量是11 3、默认扩容是增加一倍再加一 11---22+1--46+1 4、如果指定初始容量底层真实的初始容量就是多少 5、同步式线程安全的集合
4、java集合类框架
java集合类框架(Java Collection Framwork)
集合、映射以及相关的操作类(Collection、Collections、Map、数组、操作数组、Comparable接口、Iterator接口…)