死磕Java集合篇-----集合Collction下的集合分支_2
写博客之前瞎唠叨
借鉴图:http://cmsblogs.com/?p=4781 这位大神写的很好,有基础的可以直接过去看这个 ,我这个罗里吧嗦的比较基础 。
先上图,这篇博客先研究两大分支中的一个分支,Collection分支。另外一个分支是Map。
从上面大神总结的来看,我们走个捷径,大神将集合一共分为了5个部分,分别是List,Set,Queue,Deque,Map,除了Map,其他都是在Collection的分支下的。
分类:标准不同,分的种类不同
List:List中的元素是有序的、可重复的,主要实现方式有动态数组和链表。
Set:java里面的Set对应于数学概念上的集合,里面的元素是不可重复的,通常使用Map或者List来实现。
Queue:Queue是一种叫做队列的数据结构,队列是遵循着一定原则的入队出队操作的集合,一般来说,入队是在队列尾添加元素,出队是在队列头删除元素,但是,也不一定,比如优先级队列的原则就稍微有些不同。
Deque:Deque是一种特殊的队列,它的两端都可以进出元素,故而得名双端队列(Double Ended Queue)
Map:Map是一种(key/value)的映射结构,其它语言里可能称作字典(Dictionary),包括java早期也是叫做字典,Map中的元素是一个key只能对应一个value,不能存在重复的key。
标准二:
先不讨论====
先看list
Iterable我们了解过了,先看Collection,主要了解这个类是什么属性(接口?还是实现类?),有哪些方法?,哪些需要被重写?
是什么?为什么?怎么做?
Collection
从下图可见,Collection是List,Set,Queue的父接口,也就是说Collection中定义的接口既可以作用到Set里面,也可以作用到List和Queue中,上面分类的时候,我们知道,他们属于不同的集合类型,所以Collection中定义的就是一些基本使用方法。
UML类图,在线绘制工具
看一下有有哪些方法
都是关于集合操作的基本操作:增加,删除,是否包含某个元素,还有就是Iterable的实现方法
这个方法里面那我们可以看到,这个里面没有任何的实现,都是交给他的子类自己去实现。
那么Collection就看到这里,我们先来看List集合
java中提供的List的实现主要有ArrayList、LinkedList、CopyOnWriteArrayList,另外还有两个古老的类Vector和Stack。
List同样是接口,这个里面主要还是继承自Collction的方法,还添加了一些自己的方法,已经标注上了,下面两个没有标注的详细讲一下
这个比Iterator多了添加,删除,更新操作。
相对于Iterator,他是一个双向迭代器
到此 list集合暂时了解完毕