1. List三个子实现类
1.1 List集合三个子实现类特点
1.ArrayList:是我们通用的,单线程程序中,执行效率最高.(List集合默认使用)
底层结构是数组结构:查询快,增删慢.
是一个线程不安全的类,不同步.
2.Vector:底层数据结构也是数组,查询快,增删慢
是一个线程安全的类,同步,执行效率低
3.LinkedList:底层数据结构是链表:查询慢,增删快
线程不安全的类,效率高
1.2 Vector集合
1.特有功能:
public void addElement(E obj):在Vector集合末尾添加一个新元素
public E elementAt(int index):获取指定位置的元素
public Enumeration<E> elements():类似于迭代器,特有方法
Enumeration接口
boolean hasMoreElements():是否有更多的组件(元素)可以遍历
E nextElement():获取下一个元素
2.Vector有多出了两种遍历
public E elementAt(int index)和size()方法相结合普通for
例:for(int x=0;x<Vector.size();x++){
String s = Vector.elementAt(x);
sout(s);
}
public Enumeration<E> elements():Vector的特有的迭代器的操作
boolean hasMoreElements():是否有更多的组件(元素)可以遍历
E nextElement():获取下一个元素
例:Enumeration<String> enumeration = Vector.elements();
while(enumeration.hasMoreElements()){
String s = enumeration.nextElement();
System.out.println(s);
}
1.3 LinkedList集合
1.特有功能:public void addFirst(Object e):将任何类型的元素每次添加到链表的开头
public void addLast(Objet e):将任何类型的元素每次条件到链表的末尾
public Object removeFirst()从此列表中删除并返回第一个元素。
public Object removeLast()从此列表中删除并返回最后一个元素
public Object getFirst():获取链表的第一个元素
public Object getLast():获取链表的最后个元素
2.利用LinkedList实现栈功能
public class MyStack{
private LinkedList list;
public MyStack(){
list = new LinkedList<>;
}
public void add(Object obj){
list.addFirst(obj);
}
public Object get(){
return list.removeFirst();
}
public boolean isEmpty(){
return link.isEmpty();
}
}
public class Test{
main();
MyStack mystack = new MyStack();
mystack.add("hello");
mystack.add("world");
mystack.add("javaee");
while(!MyStack.isEmpty()){
Object o = mystack.get();
sout(o);
}
}