接口 List<E> 所有超级接口: Collection<E>, Iterable<E> 常见已知实现类: ArrayList, LinkedList, Vector
public interface List<E> extends Collection<E> 有序的 collection(也称为序列)。 此接口的用户可以对列表中每个元素的插入位置进行精确地控制。 用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。 与 set 不同,列表通常允许重复的元素。
List集合的特有功能概述 * void add(int index,E element) * E remove(int index) * E get(int index) * E set(int index,E element)
public E remove(int index)
移除此列表中指定位置上的元素。向左移动所有后续元素(将其索引减 1)。
public boolean remove(Object o);删除的时候不会自动装箱,把111当作索引
移除此列表中首次出现的指定元素(如果存在)。
如果列表不包含此元素,则列表不做改动。
import java.util.ArrayList;
import java.util.List;
import bean.Student;
public class h {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.println(list);//[a, b, c, d]
list.add(4, "f");//index<=size并且index>=0都不会报异常
System.out.println(list);//[a, b, c, d, f]
list.add(1,"e");
System.out.println(list);//[a, e, b, c, d, f]
//list.add(10, "z"); //java.lang.IndexOutOfBoundsException,当存储时使用不存在的索引时
System.out.println(list);
Object obj = list.remove(1);//通过索引删除元素,将被删除的元素返回
System.out.println(obj);//e
System.out.println(list);//[a, b, c, d, f]
List list1 = new ArrayList();
list1.add(111);
list1.add(222);
list1.add(333);
//list1.remove(111);//删除的时候不会自动装箱,把111当作索引
System.out.println(list1);
Object obj1 = list.get(2);
System.out.println(obj1);//c
//通过索引遍历List集合
for(int i = 0;i < list.size(); i++) {
System.out.println(list.get(i));
}
list.set(1, "z");//将指定位置的元素修改
System.out.println(list);
List list2 = new ArrayList();
list2.add(new Student("张三", 23)); //Object obj = new Student("张三",23);
list2.add(new Student("李四", 24));
list2.add(new Student("王五", 25));
list2.add(new Student("赵六", 26));
for(int i = 0; i < list2.size(); i++) {
//System.out.println(list.get(i));//通过索引获取每一个元素
Student s = (Student)list2.get(i);
System.out.println(s.getName() + "..." + s.getAge());
}
}
}