一.List的子类的特点
ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,不同步,效率高
vector:底层数据结构是数组,查询快,增删慢,线程安全,同步,效率低
LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,不同步,效率高
注:ArrayList开发中用的非常多,如果给一个需求,不知道使用谁的时候,都使用ArrayList
二.ArrayList
1.需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
方式一:
import java.util.ArrayList;
import java.util.Iterator;
public class Demo1 {
public static void main(String[] args) {
//创建集合对象
ArrayList al = new ArrayList();
//给集合中添加字符串元素
al.add("hello");
al.add("world");
al.add("java");
al.add("hello");
al.add("world");
//创建一个新的集合
ArrayList al2 = new ArrayList();
//遍历第一个集合
Iterator i = al.iterator();
while(i.hasNext()){
String s = (String)i.next();
if(!al2.contains(s)){
al2.add(s);
}
}
//输出新集合
System.out.println(al2);
}
}
结果:
[hello, world, java]
方式二:
import java.util.ArrayList;
import java.util.Iterator;
public class Demo1 {
public static void main(String[] args) {
//创建集合对象
ArrayList al = new ArrayList();
//给集合中添加字符串元素
al.add("hello");
al.add("world");
al.add("java");
al.add("hello");
al.add("world");
//遍历集合
for(int x = 0 ; x < al.size() ; x ++){
for(int y = x+1 ; y < al.size() ; y ++){
if(al.get(x).equals(al.get(y))){
al.remove(y);
y--;
}
}
}
System.out.println(al);
}
}
结果:
[hello, world, java]
三.LinkedList
LinkedList的特有功能
- 和添加相关的方法:
public void addFirst(Object e)
:在第一个位置添加元素
public void addLast(Object e)
:在最后一个位置添加元素 - 和获取相关的方法:
public Object getFirst()
:返回此列表的第一个元素
public Object getLast()
:返回此列表的最后一个元素 - 和删除相关的方法:
public Object removeFirst()
:删除此列表的第一个元素
public Object removeLast()
:删除此列表的最后一个元素
三.Vector
Vector的特有功能
public void addElement(Object obj)
:给Vector集合中添加元素public Object elementAt(int index)
:获取指定索引处的元素public Enumeration elements()
:获取迭代器对象boolean hasMoreElements()
:判断是否有下一个可以迭代的元素Object nextElement()
:下一个元素
import java.util.Enumeration;
import java.util.Vector;
public class Demo1 {
public static void main(String[] args) {
//创建集合对象
Vector v = new Vector();
//给集合中添加元素
v.addElement("hello");
v.addElement("world");
v.addElement("java");
//获取指定索引处的元素
System.out.println(v.elementAt(1));
//获取迭代器对象
Enumeration en = v.elements();
while(en.hasMoreElements()){
String s = (String) en.nextElement() ;
System.out.println(s);
}
}
}
结果:
world
hello
world
java