集合类List中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象:
vector:内部是数组数据结构,是同步的。增删查询都很慢。
arrarylist :内部是数组数据结构,是不同步的,代替了vector,查询的速度很快
linkedlist:内部是链表数据结构,是不同步的。增删元素的速度很快。
Vector 类是可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。
在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。 创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况。可以考虑使用向量类。
同步是线程中的概念 ,synchronized是Java中的关键字,是一种同步锁。synchronized只锁定对象,每个对象只有一个锁(lock)与之相关联,它修饰的对象有以下几种:
1.修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;
2.修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
3.修饰一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
4.修饰一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象;
注意:
1.虽然可以使用synchronized来定义方法,但synchronized并不属于方法定义的一部分,因此,synchronized关键字不能被继承。如果在父类中的某个方法使用了synchronized关键字,而在子类中覆盖了这个方法,在子类中的这个方法默认情况下并不是同步的,而必须显式地在子类的这个方法中加上synchronized关键字才可以。当然,还可以在子类方法中调用父类中相应的方法,这样虽然子类中的方法不是同步的,但子类调用了父类的同步方法,因此,子类的方法也就相当于同步了。
2.静态方法是属于类的而不属于对象的。同样的,synchronized修饰的静态方法锁定的是这个类的所有对象。
Vector<E> v=new Vector<E>();定义一个Vector类对象
// 默认构造函数
Vector()
// capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。
Vector(int capacity)
// capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值。
Vector(int capacity, int capacityIncrement)
//创建一个包含collection的Vector
Vector(Collection
collection)
//将指定元素追加到此向量的末尾。
boolean add(E o)
//在此向量的指定位置插入指定的元素。
void add(int index, E element)
//将指定 Collection 中的所有元素追加到此向量的末尾,按照指定集合的迭代器所返回的顺序追加这些元素。
boolean addAll(Collection
c)
//在指定位置将指定 Collection 中的所有元素插入到此向量中。
boolean addAll(int index, Collection
c)
//将指定的组件添加到此向量的末尾,将其大小增加 1。
void addElement(E obj)
//返回此向量的当前容量。
int capacity()
//从此向量中移除所有元素。
void clear()
//返回向量的一个副本。
Object clone()
//测试指定的对象是否为此向量中的组件。
boolean contains(Object elem)
//如果此向量包含指定 Collection 中的所有元素,则返回 true。
boolean containsAll(Collection
c)
//将此向量的组件复制到指定的数组中。
void copyInto(Object[] anArray)
//返回指定索引处的组件。
E elementAt(int index)
//返回此向量的组件的枚举。
Enumeration
elements()
//比较指定对象与此向量的相等性。
boolean equals(Object o)
//返回此向量的第一个组件(位于索引 0 处的项)。
E firstElement()
//返回向量中指定位置的元素。
E get(int index)
//搜索给定参数的第一个匹配项,使用 equals 方法测试相等性。
int indexOf(Object elem)
//搜索给定参数的第一个匹配项,从 index 处开始搜索,并使用 equals 方法测试其相等性。
int indexOf(Object elem, int index)
//将指定对象作为此向量中的组件插入到指定的 index 处。
void insertElementAt(E obj, int index)
//测试此向量是否不包含组件。
boolean isEmpty()
//返回此向量的最后一个组件。
E lastElement()
//返回指定的对象在此向量中最后一个匹配项的索引。
int lastIndexOf(Object elem)
//向后搜索指定的对象,从指定的索引处开始搜索,并返回一个索引。
int lastIndexOf(Object elem, int index)
//移除此向量中指定位置的元素。
E remove(int index)
//移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。
boolean remove(Object o)
//从此向量中移除包含在指定 Collection 中的所有元素。
boolean removeAll(Collection
c)
//从此向量中移除全部组件,并将其大小设置为零。
void removeAllElements()
//从此向量中移除变量的第一个(索引最小的)匹配项。
boolean removeElement(Object obj)
//删除指定索引处的组件。
void removeElementAt(int index)
//从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素。
protected void removeRange(int fromIndex, int toIndex)
//用指定的元素替换此向量中指定位置处的元素。
E set(int index, E element)
//将此向量指定 index 处的组件设置为指定的对象。
void setElementAt(E obj, int index)
//设置此向量的大小。
void setSize(int newSize)
//返回此向量中的组件数。
int size()
//返回一个数组,包含此向量中以正确顺序存放的所有元素。
Object[] toArray()
T[]
toArray(T[] a)
//返回一个数组,包含此向量中以正确顺序存放的所有元素;返回数组的运行时类型为指定数组的类型。
String toString()
//返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。