学习Java第二十五天--集合框架之Map集合
作者:互联网
Map集合
12.5 Map体系集合
12.5.1 Map结构
- Map接口的特点:
用于存储任意键值对(Key-Value);
键:无序、无下标、不允许重复(唯一);
值:无序、无下标、允许重复;
12.5.2 Map父接口
- 特点:存储一对数据(Key-Value),无序、无下标、键不可重复,值可重复;
- 方法:
V put(K key , V value) //将对象存入到集合中,关联键值。key重复则覆盖原值;
Object get(Object key) //根据键获取对应的值;
Set //返回所有key;
Collection values() //返回包含所有值的Collection集合;
Set<Map.Entry<K , V>> //键值匹配的Set集合;
12.5.3 Map集合的实现类
- HashMap【重点】:
JKD1.2版本,线程不安全,运行效率快;允许用null作为key或者是value;
HashMap算法:拿到任何一个对象,通过hash(key)做运算,key>>>16(除以16),只可能得到0~15之间的一个数组,作为插入数组的下标
import java.util.HashMap;
public class TestBasicHashMap {
public static void main(String[] args) {
HashMap<String , String> map = new HashMap<String , String>();
map.put("CN", "中国");
map.put("US", "美国");
map.put("JP", "日本");
map.put("KR", "韩国");
map.put("IT", "意大利");
map.put("CN", "中华人民共和国");//重复key进行覆盖
String country = map.get("CN");
//调用get(key)--->通过“CN”计算哈希,得到3,3这个下标上对比有没有“CN”这个key,
//如果有则返回
System.out.println(country);
map.remove("IT");
System.out.println(map);
}
}
输出结果:
中华人民共和国
{JP=日本, KR=韩国, CN=中华人民共和国, US=美国}
null
- Hashtable:
JKD1.0版本,线程安全,运行效率慢;不允许null作为key或者value;
和HashMap用法基本一样; - Properties:
Hashtable的子类,要求key和value都是String。
通常用于配置文件的读取;保存文件中的键值对、反射、JDBC
- TreeMap:
实现了SortedMap接口(是Map的子接口),可以对key自动排序。
根据CompareTo的返回值去重;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TestTreeMap {
public static void main(String[] args) {
Map<Integer , String> map = new TreeMap<Integer , String>();
map.put(4, "Tom");
map.put(2, "Jack");
map.put(8, "Alex");
map.put(3, "Rose");
//混乱的插入方法,但TreeMap会根据CompareTo方法进对key行排序
Set set = map.keySet();//获取key的序列
Iterator ite = set.iterator();//返回此集合元素的迭代器
//Set和Map都是链式结构,可以使用迭代器
while(ite.hasNext()) {//判断迭代中是否还有元素
Object key = ite.next();//返回迭代中的下一个元素
Object value = map.get(key);
System.out.println(key + " "+ value);
}
}
}
输出结果:
2 Jack
3 Rose
4 Tom
8 Alex
12.6 总结
- 集合的概念:
对象的容器,存储对象的对象,定义了对多个对象进行操作的常用方法;
-
List集合:
有序、有下标、元素可以重复。(ArrayList、LinkedList、Vector) -
Set集合:
无序、无下标、元素不可重复。(HashSet、LinkedHashSet、TreeSet) -
Map集合:
存储一对数据,无序、无下标,键不可重复,值可重复(HashMap、HashTable) -
Collections:
集合工具类,定义了除了存取以外的集合常用方法;
标签:Map,Java,12.5,map,put,key,集合 来源: https://blog.csdn.net/weixin_44257082/article/details/104721906