List是接口,ArrayList是List的实现类(ArrayList不是继承List接口,是实现了List接口)List是接口,它是不可以被实例化的(接口是个抽象类),必须以它的实现类去实例化它。
ArrayList方法:
1.创建一个集合list
List list = new ArrayList();
一、List接口介绍
鉴于Java中数组用来存储数据的局限性,我们通常使用List替代数组
List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。
List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据 序号存取容器中的元素。 JDK
API中List接口的实现类常用的有:ArrayList、LinkedList和Vector。
二、List接口方法
List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来操作集合元素的方法。
(1)void add(int index, Object ele):在index位置插入ele元素
(2)boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
(3)Object get(int index):获取指定index位置的元素
(4)int indexOf(Object obj):返回obj在集合中首次出现的位置
(5)int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
(6)Object remove(int index):移除指定index位置的元素,并返回此元素
(7)Object set(int index, Object ele):设置指定index位置的元素为ele
(8)List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
三、代码介绍
public class Test3 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(123);//添加元素
list.add(456);
list.add(789);
list.add("AA");
// list.add(new Person("Tom",20));
list.add(789); //[123,456,789,’AA’,789]
System.out.println(list);
list.add(1,"cc");//插入数据
System.out.println(list); //[123, cc,456,789,AA,789]
List list1 = Arrays.asList(1, 2, 3);
list.addAll(list1);
// list.add(list1);
System.out.println(list);//[123, cc,456,789,AA,789,1, 2, 3]
System.out.println(list.get(0));//获取某个位置的元素 123
System.out.println(list.get(8));//3
int index = list.indexOf(456);//获取该元素首次出现的索引
System.out.println(index); //2
int index1 = list.indexOf(4567);//没有该元素返回-1
System.out.println(index1);//-1
System.out.println(list.lastIndexOf(789));//获取该元素最后一次次出现的索引,若没有返回-1 //5
Object obj = list.remove(0);//Object remove(int index):移除指定index位置的元素,并返回此元素
System.out.println(obj);//obj是删除的元素 123
System.out.println(list); //[ cc,456,789,AA,789,1, 2, 3]
list.set(1,"CNM");//Object set(int index, Object ele):设置指定index位置的元素为ele
System.out.println(list); //[ cc,CNM,789,AA,789,1, 2, 3]
List subList = list.subList(4, 8);
//List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置左开右闭的子集合
//不会对原来的数组造成变化
System.out.println(subList);//[789,1, 2, 3]
System.out.println(list);//[ cc,CNM,789,AA,789,1, 2, 3]
System.out.println(list.size());//数组长度8