java集合架构
collection接口 与 map接口
1 、collection接口
特点:元素是 无序可重复的集合,无索引的,元素是单例值
子类 :set接口 list接口
1.1 set接口
特点:元素是无需不重复,无索引,底层数据结构是哈希表
对应引用类型元素依赖两个方法:hashcode()和equels()来保证元素的唯一性
实现类:
hashset实现类
特点: 添加元素是无序不重复,无索引的
实现类:linkedhashset
特点:元素有序不重复的
treeset实现类
特点: 元素是不重复可排序的(默认升序)
底层数据结构是红黑树
1.2 list接口
特点:元素是有序有索引可重复的
实现类:
linkedlist:底层数据结构是链表,查询慢,增删快。线程不安全,效率高
vector 底层数据结构是数据,查询快,增删慢。线程安全,效率低
arraylist 底层数据结构是数据,查询快,增删慢。线程不安全,效率高
2 、map接口
特点:元素是键值对,元素特性有“键”决定,键的要求是无需不重复
实现类:
2.1 hashmap实现类
特点:元素是无需不重复的,线程不安全,性能好,高并发下容易出现问题
底层数据结构是哈希表 允许存放null键null值
linkedhashmap实现类:元素是有序不重复的额,新加了链保证添加顺序
2.2 idetityhashmap 实现类:严格按照元素的引用进行重复比较,无序不重复的
2.3 hashtable 实现类: 元素是无序不重复的,线程安全,使用共享锁,性能差,高并发下竞争越激烈性能越差 不允许存放null键null值
2.4 concurrenthashmap 实现类: 元素是无序不重复的,线程安全,使用分段锁,性能得到了优化,高并发下建议使用
2.5 treemap 实现类: 元素是不重复课排序的额(默认升序), 底层数据结构基于红黑树 对应引用类型元素依赖两个方法:hashcode()和equals()来保证元素值得唯一性
2.6 properties 实现类:通常用于生成或者解析属性配置文件,属性文件中的数据就是键值对