import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
List是动态数组,替换原有的数组
实现类:
ArrayList(List接口的主要实现类)
LinkedList
Vector(List接口的古老实现类)
三个实现类的异同:
同:都实现了List接口,存储数据有序、可重复。
异:ArrayList底层采用Object[]数组,LinkedList底层采用双向链表,对于频繁的插入、删除,LinkedList效率较高,ArrayList对于频繁的查找效率更高。两者线程都不安全,所以效率高。
Vector和ArrayList相似,底层都采用Object[],但Vector线程安全,但效率没有ArrayList高。
*/
/**
因为List存储数据有序,因此在父接口Collection基础上,又添加了一些与index有关的抽象方法:
list.add(int index,Object e);
list.addAll(int index,Collection e);
list.set(int index,Ob e);
list.get(int index);
☆E list.remove(int index); 父接口remove方法的{重载},父接口方法返回boolean,此处返回删除的元素
indexOf(Ob o);
lastIndexOf(Ob o);
List subList(int fromIndex, int toIndex);包括fromIndex,不包括toIndex
*/
public class ListTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(1, 3);
System.out.println(list.subList(0,3));
System.out.println(list.indexOf(1));
System.out.println("list.get(0) = " + list.get(0));
System.out.println("list.remove(0) = " + list.remove(0));
System.out.println("list = " + list);
list.set(0,"Jack");
System.out.println("After setting list(0), list = " + list);
List list1 = new ArrayList();
list1.add(1);
list1.add(3);
//list1.remove(1);删除2,而不是1(使用index的方法)
list1.remove(new Integer(1));
//删除1
System.out.println("list1 = " + list1);
//list1 = [3]
}
}
原文:https://www.cnblogs.com/WhiteThornZzf/p/14489238.html