List接口及实现类(集合续)
List继承了Collection接口,有三个实现的类
ArrayList
数组列表,数据采用数组方式存储。
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList
LinkedList采用链表存储方式。插入、删除元素时效率比较高
Vector
数组列表,添加同步锁,线程安全的
ArrayList的常用方法
add(int index, E element)
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
remove(int index) 删除并返回指定位置元素
removeRange(int fromIndex, int toIndex) 删除指定区间的元素(子类继承使用)
set(int index,E element)
package day2;
import java.util.ArrayList;
import java.util.List;
public class ArrayListDemo {
public static void main(String[] args) {
//List list=new ArrayList();
ArrayList arrayList=new ArrayList();
arrayList.add("a");//默认情况下向末尾添加
arrayList.add("b");
arrayList.add(0,"x"); //装满之后 扩容到原来的1.5倍
System.out.println(arrayList);
System.out.println(arrayList.get(2));
System.out.println(arrayList.indexOf("b"));
arrayList.add(1,"s");
arrayList.sort(new StringC());
}
}
package day2;
import java.util.ArrayList;
import java.util.List;
public class ArrayRange extends ArrayList {
public static void main(String[] args) {
List list=new ArrayList(15);//有参构造方法
list.add("a");
list.add("s");
list.add("d");
list.add("f");
list.add("h");
System.out.println(list.subList(1,3));
}
}
LinkedList的常用方法
add(int index,Object element)
addFirist(Object element)
addLast(Object element)
removeFirst()
removeLast()
remove(int index)
getFirst()
getLast()
package day2;
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList list=new LinkedList();
list.add("a");
list.add("s");
list.add("d");
list.add("f");
list.add("g");
list.addFirst("1");
list.addLast("2");
System.out.println(list.get(2));
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println(list);
}
}
package day3;
import java.util.Vector;
public class VectorDemo {
public static void main(String[] args) {
//底层也是数组的实现,线程安全的
Vector v=new Vector();
v.add("a");
v.add("a");
v.add("s");
v.add("d");
v.add("x");
v.add("c");
System.out.println(v);
}
}