Collection接口的子接口:list接口。

List接口的特点:

        1.List集合中存放的元素是有序的(添加顺序与输出顺序一致),可重复。

        2.List集合中的每个元素都有其对应的顺序,支持索引查找。与数组相同,索引从0开始

List接口的实现子类:ArrayList、LinkedList、Vector类

// 通过ArrayList实现子类讲解List接口特点
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("mary");
System.out.println(list); // [jack, tom, mary]

// 遍历list集合
for(int i = 0; i < 3; i++) {
    // 通过get方法获取集合中对应位置的对象
    // list集合是一个容器,每个元素都对应一个整数型序号记录元素在list中的位置,通过序号存取元素
    System.out.println(list.get(i);
}

List接口中的方法:

        add:void add(int index,Object ele),在索引为index的位置上添加ele元素

list.add(0, "kxg");

        addAll:boolean addAll(int index, Collection eles),从index位置上开始,插入eles集合中所有元素

List list1 = new ArrayList();
list1.add(25);
list1.add(4);
list1.add(100);
list.addAll(2, list1);
list.add("kxg");
System.out.println(list); // [kxg, jack, 25, 4, 100, tom, mary, kxg]

        get:Object get(int index):获取索引位置为index的元素

System.out.println(list.get(0)); // kxg

        indexOf:int indexOf(Object obj) :获取元素obj在集合中第一次出现的位置

        lastindexOf:int lastIndexOf(Object obj):获取元素obj在集合中最后一次出现的位置

System.out.println(list.indexOf("kxg")); // 0

System.out.println(list.lastIndexOf("kxg")); // 7

        remove:Object remove(int index):删除指定位置上的元素,并返回此元素

list.remove(7);

System.out.println(list); // [kxg, jack, 25, 4, 100, tom, mary]

        set:Object set(int index, Object ele):将集合中index位置上的元素修改为ele

                注意:index不能越界(<=最大索引),否则会抛出异常

list.set(1, "杰克"); 
System.out.println(list); // [kxg, 杰克, 25, 4, 100, tom, mary]
// list.set(7, "jack"); // IndexOutOfBoundsException

        sublist:List sublist(int fromIndex, int toIndex):返回索引从fromIndex到toIndex上的元素集合

                注意:集合范围:fromList <= sublist < toList 

List list2 = list.subList(2, 5);
System.out.println(list2); // [25, 4, 100]

遍历List集合:

        实现Collection接口的实现类(ArrayList、LinkedList、Vector)都可以通过三种方式进行遍历

// 创建List集合(使用ArrayList类)
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("smith);
list.add("mary");

 一,使用Iterator迭代器进行遍历

        Iterator(迭代器)是一个接口,作用:遍历容器中的所有元素。

        Collection与Map系列用于盛装其他对象,而Iterator用于遍历(迭代访问)Collection中的元素

        因此实现了Collection个接口的类都可以使用Iterator进行遍历

        Iterator接口中的方法:

                boolean hasNext():判断集合中是否存在下一个元素;如果有,返回true

                Object next():返回集合中的下一个元素

                void remove():删除集合中上一个next方法返回的元素

// 使用Iterator迭代器遍历集合
    // 创建迭代器对象(使用list中的Iterator方法)
Iterator iterator = list.iterator();
    // 判断list集合是否存在下一个元素
while(iterator.hasNext()) {
    // 得到list集合中的每个元素
    System.out.println(iterator.next());
}

 二,使用for循环

        list接口中存在get方法可以根据索引获取每个元素;size方法可以获得集合中的元素个数

for(int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i);
}

三,增强for循环

for(Object o : list) {
    System.out.println(o);
}