Collection:单列集合,一次存一个对象
Map双列集合,一次存两个对象,而且这两个对象要存在某种关系,一 一对应关系
- map集合的key唯一,值可以重复
- 键和值整体叫键值对,并且键值对唯一
单列集合和双列集合区别:
- 单列集合一次存储一个值,双列集合一次存储两个具备有映射关系的值
- 单列集合底层数据结构针对每个元素
3,双列集合其实底层就是两个单列集合,底层所说的数据结构是针对键,和值的没有关系
4,键位置使用单列集合中的set存储, 值使用list
如果添加数据的时候,集合中不存在键,那么就会直接添加,并返回null, 如果存在,那么就会根据键修改值,并返回旧的value
总结put(key,value) 可以添加也可以修改
put(key,value) 增删,修改
clear() 清空
remove(key) 删除,返回对应的值,如果没有返回null
get(key)根据key获取值,如果没有返回null
cotainskey(key) 判断是否包含key, 返回boolean
containsValue(value)判断是否包含某个value,返回boolean
isEmpty() 判断是否为空,返回boolean
keySet() ,返回集合的多有key, 保存在Set<E>
values() , 返回集合中所有value,保存在Collection中
size() 获取集合长度
map迭代两种方法
- keySet() 和 get(key)搭配使用
Set<String> keys = list.keySet();
for(Iterator<String> it = keys.iterator();it.hasNext();){
String key = it.next();
String value = list.get(key);
} - entrySet(),返回整体(key,value)的值,存放在set中,整体属于Map,Entry类型,在迭代器每次取出来的是键值对整体,属于Map.Entry类型
Set<Map.Entry<String,String>> entrys = list.entrySet();
for(Iterator<Map.Entry<String,String>> it = entrys.iterator();it.hasNext();){
Map.Entry<String,String> entry = it.next();
String key = entry.getKey();
String value = entry.getValue();
}
HashMap:
map集合中保存的一组对象
HashMap可以自定义一个对象作为集合的key(要重写hashCode和equals方法)
LinkedHashMap
链表,哈希表,存储有序
HashMap和hashtable区别:
hashtable不许存储null
HashMap线程不安全,效率高,hashtable线程安全,效率低
网友评论