* List也是一个接口,这说明List不能new,其中它有一个子类ArrayList,所以,就可以父类引用指向子类对象调用
* List里面特有的方法:
*
* void add(int index,E element)在列表的指定位置插入指定元素(可选操作) 通过索引去在指定位置添加元素
* 参数:index - 要在其中插入指定元素处的索引 ,element - 要插入的元素
*
* E remove(int index)移除列表中指定位置的元素(可选操作) 通过索引去删除元素
* remove方法里面只要给一个整数,都会把那个整数当成索引去处理,并不是当成元素去处理
* 参数:index - 要移除的元素的索引
* 返回:以前在指定位置的元素
*
* E get(int index)返回列表中指定位置的元素 通过索引去获取元素
* 参数:index - 要返回的元素的索引
* 返回:列表中指定位置的元素
*
* E set(int index,E element) 用指定元素替换列表中指定位置的元素(可选操作) 把指定索引位置的元素给修改掉
* 参数:index - 要替换的元素的索引 element - 要在指定位置存储的元素
* 返回:以前在指定位置的元素
package com.wsq.list;
import java.util.List;
import java.util.ArrayList;
public class Demo1_LIst {
public static void main(String[] args) {
demo1(); //通过索引去在指定位置添加元素, void add(int index,E element)
demo2(); //通过索引去删除元素, E remove(int index)
demo3(); //通过索引去获取元素,E get(int index)
demo4(); //把指定索引位置的元素给修改掉, E set(int index,E element)
demo5();
}
private static void demo5() {
List list = new ArrayList(); //父类引用指向子类对象,创建List集合
list.add("a"); //向List集合里添加元素,索引为0
list.add("b"); //向List集合里添加元素,索引为1
list.add("c"); //index<=size并且index>=0都会报异常
list.add("d");
list.set(1, "z"); //将指定位置的元素修改,把1索引的位置给改成z
System.out.println(list);
}
public static void demo1(){
List list = new ArrayList(); //父类引用指向子类对象,ArrayList是List接口的一个子类
//多态的好处:可以将list当成参数去传递。但是,不能访问子类特有的属性
list.add("a"); //索引为0
list.add("b"); //索引为1。。。以此类推
list.add("c"); //index<=size并且index>=0都会报异常
list.add("d"); //索引为3
//void add(int index,E element)在列表的指定位置插入指定元素,
list.add(4,"f"); //即在4索引处添加 f 元素,index(索引)<=size并且>=0都不会报异常
//list.add(1,"e"); //即在1索引处天剑 z 元素
//list.add(10,"z"); //当储存时,不存在的索引时,就会出现索引越界异常
//有索引的时候要考虑索引越界异常
System.out.println(list);
}
public static void demo2(){
List list = new ArrayList(); //父类引用指向子类对象,创建List集合
list.add("a");
list.add("b");
list.add("c"); //index<=size并且index>=0都会报异常
list.add("d");
Object obj = list.remove(1); //通过索引删除元素,将被删除的元素返回
System.out.println(obj); //输出被删除的元素,把谁删掉,就会把谁返回
System.out.println(list); //
}
public static void demo3(){ //remove方法里面只要给一个整数,都会把那个整数当成索引,这里的111,就被当成索引了
List list = new ArrayList(); //父类引用指向子类对象,创建List集合
list.add(111); //在List集合中添加Integer,分别为111,222,333
list.add(222);
list.add(333);
list.remove(111); //删除的时候不会自动装箱,(如果自动装箱,就会删除一个对象,new一个Integer对象)这里把111当成索引
System.out.println(list); //输出报错
}
public static void demo4(){
List list = new ArrayList(); //父类引用指向子类对象,创建List集合
list.add("a"); //在List集合里面添加元素,索引为0
list.add("b");
list.add("c"); //index<=size并且index>=0都会报异常
list.add("d");
//通过get方法,可以去做遍历,因为通过索引的不断改变,从而将List集合里面的所有元素给获取出来
//这个是List集合里面特有的一种方法,只有List集合才有索引,Set集合是没有索引的
/*
Object obj1 = list.get(2); //将List集合给存储到Object类数组里面
System.out.println(obj1); //输出Object数组里面索引为2的元素
*/
//通过索引遍历List集合,i就可以当成索引
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}