集合:将多个元素组成一个单元的对象,用于存储,检索,操纵和传输对象。
集合分为Collection跟Map:
Collection分为List跟Set,Map分为TreeMap跟HashMap
List分为ArrayList跟LinkedList
Set分为HashSet跟TreeSet(必须存储相同类型数据否则异常)等。
Collection只存对象,对于基本类型必须先用Wrap Class转换成对象才能进行存储。
Set:无序但是唯一;List:有序可重复;
ArrayList:读快改慢;LinkedList(双向链表):改快读慢;Hash位于其中。
Map中不能存放重复的键-值对。
HashMap与HashTable:
1.HashMap新,1.2新引入,HashTable旧。
2.HashMap中允许有空值NULL。
3.HashMap支持同步安全。
ArrayList与Vector:
1.Vector有而ArrayList没有的方法:addElement,elementAt等。
2.Vector的实现相对ArrayList稍微复杂,Vector功能并不比ArrayList强大,代码量确是两倍。
3.Vector由于使用了synchronized方法(线程安全),所以性能会下降。
Vector中的Size()是指:存储的元素个数。而capacity:容量数(即使为空)。
使用技巧:
一般都用Collection c = new ArrayList();为什么不写成 ArrayList list = new ArrayList(); ?
因为用Collection它NEW一个子类对象调父类引用,以后若想改成Set集合。直接改就行,(直接让Collection重新指向一个新的子类对象即可)因为对象c不可能调用ArrayList这个子类特有的方法!所以只要后面是子类对象即可!
这么写灵活性高,可扩展!
Iterator接口:
1。所有实现Collection接口的容器类都有一个iterator方法用以返回一个Iterator接口的对象。
2。Iterator读取的方向是单向的,也就是说不能读取以前度过的数据。但是ListIterator可以。
3。其定义的方法:
boolean hasNext(); //判断游标右边是否有元素
Object next(); //返回游标右边元素并将游标移动到下一个位置
void remove(); //删除游标左边的元素,在执行完next之后该操作只执行一次
集合分为Collection跟Map:
Collection分为List跟Set,Map分为TreeMap跟HashMap
List分为ArrayList跟LinkedList
Set分为HashSet跟TreeSet(必须存储相同类型数据否则异常)等。
Collection只存对象,对于基本类型必须先用Wrap Class转换成对象才能进行存储。
Set:无序但是唯一;List:有序可重复;
ArrayList:读快改慢;LinkedList(双向链表):改快读慢;Hash位于其中。
Map中不能存放重复的键-值对。
HashMap与HashTable:
1.HashMap新,1.2新引入,HashTable旧。
2.HashMap中允许有空值NULL。
3.HashMap支持同步安全。
ArrayList与Vector:
1.Vector有而ArrayList没有的方法:addElement,elementAt等。
2.Vector的实现相对ArrayList稍微复杂,Vector功能并不比ArrayList强大,代码量确是两倍。
3.Vector由于使用了synchronized方法(线程安全),所以性能会下降。
Vector中的Size()是指:存储的元素个数。而capacity:容量数(即使为空)。
使用技巧:
一般都用Collection c = new ArrayList();为什么不写成 ArrayList list = new ArrayList(); ?
因为用Collection它NEW一个子类对象调父类引用,以后若想改成Set集合。直接改就行,(直接让Collection重新指向一个新的子类对象即可)因为对象c不可能调用ArrayList这个子类特有的方法!所以只要后面是子类对象即可!
这么写灵活性高,可扩展!
Iterator接口:
1。所有实现Collection接口的容器类都有一个iterator方法用以返回一个Iterator接口的对象。
2。Iterator读取的方向是单向的,也就是说不能读取以前度过的数据。但是ListIterator可以。
3。其定义的方法:
boolean hasNext(); //判断游标右边是否有元素
Object next(); //返回游标右边元素并将游标移动到下一个位置
void remove(); //删除游标左边的元素,在执行完next之后该操作只执行一次