集合类用于存储一组对象(Object),而不能用于存放基本数据类型,其中的每个对象称之为元素,经常会用到的有Vector、Enumeration、ArrayList、Collection、Iterator、Set、List等集合类和接口。
一、Vector类和Enumeration接口。
1、由于Java不支持动态数组,Vector类提供了一种与动态数组相近的功能。如果要将若干对象保存在数据结构中,而事先对象的数目不确定,这时Vector就是一种不错的选择。Vector类的elements()方法将返回实现Enumeration接口的类,然后用Enumeration的nextElement可以逐个取出Vector中的数据
Vector v = new Vector();
v.addElement();//增加元素
Enumeration e = v.elements();//取V中的元素
//假设Vector中存放的是Integer类
e.hasMoreElement();//是否还有元素
Integer intObj = (Integer)e.nextElement();
sum+ = intObj.intValue();
二、Collection接口和Iterator接口
Collection接口和Iterator接口的关系类似与Vector类和Enumeration接口的关系,功能也差不多。但Collection是一个接口,我们需要用实现了该接口的类来创建对象。ArrayList就是实现了Collection接口的类。用ArrayList,上面的代码可以改为
ArrayList v = new ArrayList();
v.add();//增加元素
Iterator e = v.iterator();//取V中的元素
//假设Vector中存放的是Integer类
e.hasNext();//是否还有元素
Integer intObj = (Integer)e.next();
sum+ = intObj.intValue();
三、Vector和ArrayList的区别
1、从上面可以看出,ArrayList的方法名称更简练。
2、Vector的所有方法都加了synchronized,而ArrayList没有加。也就是说Vector类的所有方法都是线程同步的。也正因为这样,Vector的性能比ArrayList会差50%左右。所以在无需同步机制的情况下,尽量使用ArrayList。
3、ArrayList在内存不够时默认是扩展50% + 1个,Vector是默认扩展1倍
4、Vector提供indexOf(obj, start)接口,ArrayList没有
四、Collection、List、Set的区别
1、Collection是List接口和Set接口的父类,它是一种通用性的接口。Collection各个元素对象之间没有指定的顺序,允许有重复元素和多个null元素对象。
2、List各个元素对象之间有指定的顺序,允许有重复元素和多个null元素对象。
3、Set各个元素对象之间没有指定的顺序,但不允许有重复元素,最多允许有一个null元素对象。
五、Collections类
Collections包含各种有关集合操作的静态方法。(注意和Collection接口的区别)。比如对一个数组的排序:
ArrayList a = new ArrayList();
a.add(new Integer(1));
a.add(new Integer(3));
a.add(new Integer(2));
Collections.sort(a);
这样就可以对a进行排序。
阅读(848) | 评论(0) | 转发(0) |