Map

java.util.Map
和Collection最大的不同,就是它存储“键值对,映射关系”

常用方法:
1.添加
put(key,value):一次添加一对映射关系
putAll(Map map):一次添加多对映射关系
this = this 并 map
2.删除
remove(Object key);根据key删除一对
clear():清空
3.修改
通过put可以替换value,只要key相同,就会替换
4.查询
(1)containsKey(Object key):判断某个key是否存在
(2)containsValue(Object value):判断某个value是否存在
(3)V get(Object key):根据key获取value
(4)boolean isEmpty():是否为空
5.获取映射关系,键值对数:int size()
6.遍历
(1)Set keySet()
(2)Collection values()
(3)Set entrySet():由entry对象构成的set,因为key不重复,那么entry对象也不会重复。

Map的实现类们:
1.HashMap:哈希表
2.HashTable:哈希表
3.LinkedHashMap:
它是HashMap的子类,比HashMap多维护了添加的顺序。
4.TreeMap:映射关系的顺序会按照key的“大小”顺序排列。
要求:映射关系的key,必须支持排序,即实现java.lang.Comparable接口,或者单独为TreeMap指定定制的比较器对象。
5.Properties:
(1)Properties是HashTable的子类
(2)Properties的key和value的类型是String

面试题:HashMap和HashTable的区别
HashTable:最古老,线程安全的,它的key和value不允许为null。
HashMap:相对新,线程不安全的,它的key和value允许为null。

类同:StringBuffer和StringBuilder
Vector和ArrayList

Set的底层实现,内部实现
HashSet:内部实现是HashMap
添加(add)到HashSet的元素是作为HashMap的key,所有的value共享同一个Object类型的常量对象PRESENT。
LinkedHashSet:内部实现是LinkedHashMap
添加(add)到LinkedHashSet的元素是作为LinkedHashMap的key,所有的value共享同一个Object类型的常量对象PRESENT。
TreeSet:内部实现是TreeMap
添加(add)到TreeSet的元素是作为TreeMap的key,所有的value共享同一个Object类型的常量对象PRESENT。

原文地址:https://www.cnblogs.com/1185937986-jili/p/12891625.html