1、Vector的用法
public class Client {
public static void main(String[] args) {
//实例化Vector并为Vector插入元素
Vector<String> vector = new Vector<>(5,3);
vector.add("come");
vector.addElement("on");
vector.addAll(Arrays.asList("You are my apple".split(" ")));
//Vector的四种迭代
//1)Enumeration
for (Enumeration<String> e = vector.elements();e.hasMoreElements();) {
System.out.print(e.nextElement());
}
System.out.println();
//2)foreach
for(String s:vector){
System.out.print(s);
}
System.out.println();
//3)Iterator
Iterator<String> iterator = vector.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next());
iterator.remove();
}
System.out.println();
//elementData.length,elementCount
System.out.println("capacity:"+vector.capacity()+"|size:"+vector.size());
//4)ListIterator,可向前向后迭代,可增删改
Vector<String> vector2 = new Vector<String>(Arrays.asList("I'm a bit hungry".split(" ")));
ListIterator<String> listIterator = vector2.listIterator(vector2.size());
int count = 0;
while(listIterator.hasPrevious()){
String tmp = listIterator.previous();//cusor--
// listIterator.set(tmp.toUpperCase());
// listIterator.remove();
if(vector2.size()<=10)
listIterator.add("..."+count++);//cusor++
}
System.out.println(vector2);
}
}
2、Vector、ArrayList、LinkedList的比较
相同点:都是List的子类,都可用Iterator和ListIterator迭代
不同点:1)Vector线程安全但低效,ArrayList不安全但高效
2)Vector和ArrayList内部用数组实现,而LinkedList内部维持一个双端队列