集合框架在项目开发中有着极其重要的地位,经过多时的学习,对集合框架总算有了一个全面的认识 ,为了以后更好的学习和查阅,再此记下
主要有两个顶层接口:
1.Collection 2.Map
而Collection接口又分出了List 和Set两个接口
在此说说他们的区别:
1.1 List接口 里面的元素可以重复且有顺序
1.2 Set接口 里面的元素没有顺序且不可以重复
在项目的开发过程中 Lilst用的比Set多
又List7延伸了一个抽象类AbstractList Vector 类 ArrayList类 Sequenty(抽象类)继承AbstractList得来 而又友Sequenty延伸出LInkedList
下面通过实现顶层接口 并创建实例 来说明 Vector ArrayList LinkedList 类的却别 和常用
List list; list = new Vector(); list = new ArrayList(); list = new LinkedList();
Vector 类的方法 和ArrayList类的方法区别在于 Vector的方法有关键字synchronized修饰,即就是Vector是支持多线程的,线程安全型的 ,而ArrayList则反之,常常用于单线程中。故此在用到多线程时 要首先考虑用的是Vector类而非ArrayList类
学过数据结构的人应该都知道 LinkedList是又链表实现,链表的传递只需要修改引用的指向,因而对于频繁的增、删操作,LinkedList速度要比前两者快,故而用到此情况要首先考虑到LinkedList。
由Set接口延伸出一个子接口和一个抽象类 分别是:Sorted接口和AbstractList 他们有分别延伸出两个类
TreeSet类 和HashSet 类
讲完了顶层接口Collection接口 以及友它延伸的子接口和类 需要强调一下 它和Collections的却别:
Collection 是一个顶层接口,包含有延伸出的很多子类和子接口
而Collections是一个实现类 里面有具体的实现集合运算的方法
第二个顶层接口
2.Map
由Map顶层接口延伸出来的有一个接口 和一个抽象类
SortedMap(接口)和抽象类AbstractMap 他们有分别延伸出了 一个类和两个类 分别是:
TreeMap 和 HashMap类、Hashtable类
HashMap和Hashtable的却别类似 Vector类 和ArrayList类
Hashtable是线程安全的 而HashMap是线程非安全的,在多线程我们常常用Hashtable 而在平时单线程中 常常御用HashMap
最后是集合类的遍历器 即Iterator
通过得到集合类的遍历器iterator() 并发回给 Iterator类 加上foreach循环 就可以遍历所有的集合。
由于本人懂的甚少,因此总结出的就可想而知了, 希望有来者的话 可以指点指点 感激不尽....