Collection
- 接口
- 集合类的上层接口
- Set,List接口的父接口
Map
Collections
- 是一个集合框架的帮助类,包含一些对集合进行排序,序列化,搜索等操作的方法
源代码里面含有各种方法:
- 其作用域
Q&A:
List,Map,Set的区别
- List和Set都是储存单列数据,所以其本质都是继承Collection接口,Collection继承了Iterator接口
Map是储存双列数据的集合 - List和Set的区别在于,List中存储的数据有序且允许重复
Set中元素在集合中的位置是由元素的hashcode来决定的,所以Set中元素是不可重复的,且数据无顺序。
List,Map,Set的实现类
List
Q&A:为什么数组的增删慢?
数组在内存中是在某一个区域里线性存储,所以对其进行删除和插入等操作会使得后面的数据前移或者后挪,这导致很花时间,但是线性存储,查找很快。
Map
Q&A:HashTable和HashMap
HashTable里的方法大多是synchronized,多个线程访问时不需要自己为它的方法实现同步,而HashMap需要
Set
HashSet实现基于HashMap
HashLinkedSet继承HashSet,基于LinkedHashMap实现
Q&A: 不是说LinkedHashSet实现基于LinkedHashMap吗,但是在查看源代码的时候发现,在LinkedHashSet中根本没有提到Map相关,只有四个构造方法,连add,delete等方法都没有?
首先,LinkedHashSet完全继承HashSet,其四个构造方法中都是super
而点进去查看的时候可以看到