目录

 

二 List接口

2.1 add(int index,E element)

2.2 addAll(int index,Collection c)

2.3 get(int index)

2.4 indexOf(Object o)

2.5 lastIndexOf(Object o)

2.6 listIterator()

2.7 listIterator(int index)

2.8 remove(int index)

2.9 set(int index,E element)

2.10 subList(int fromIndex,int toIndex)


二 List接口

在整个集合中 List 是 Collection 的子接口,里面的所有内容都是允许重复的。

List 子接口的定义:public interface List<E> extends Collection<E>

此接口上依然使用了泛型技术。此接口对于 Collection 接口来讲有如下的扩充方法

列表具有扩展显示该路线各个数据的功能android 列表扩充_数据结构

在 List 接口中有以上 10 个方法是对已有的 Collection 接口进行的扩充。我们要知道的是List接口是Colection接口的子接口,List接口继承了Colection接口里面的所有方法,如果想看Colection接口里常用的15个方法,请点开下面链接查看:

接下来我带大家重点了解一下List接口中扩充的这10个方法:

2.1 add(int index,E element)

方法名称:public void add(int index,E element)

API中描述:将指定元素插入此列表中的指定位置(可选操作)

我们先在集合list中添加一组元素

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list = new ArrayList<>();
       list.add("000");
       list.add("111");
       list.add("222");
       list.add("333");
       System.out.println(list);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52176:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
[000, 111, 222, 333]

Process finished with exit code 0

我们再用 add(int index,E element)方法将指定元素插入此列表中的指定位置

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list = new ArrayList<>();
       list.add("000");
       list.add("111");
       list.add("222");
       list.add("333");
       list.add(2,"张三");//在2下标插入”张三“这个元素
       System.out.println(list);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52208:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
[000, 111, 张三, 222, 333]

Process finished with exit code 0

2.2 addAll(int index,Collection<?extends E> c)

方法名称:boolean addAll(int index,Collection c)

在API中描述:将指定集合中的所有元素插入到指定位置的此列表中(可选操作)

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       List<String> list2 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       //list2集合中添加元素
       list2.add("张三");
       list2.add("李四");
       list2.add("王五");
       //通俗的来讲就是在list1集合的1下标处将list2集合中的所有元素都插进去
       list1.addAll(1,list2);
       //打印
        System.out.println(list1);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52324:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
[111, 张三, 李四, 王五, 222, 333]

Process finished with exit code 0

2.3 get(int index)

方法名称:public E get(int index)

在API中描述:返回此列表中指定位置的元素

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       //根据索引位置取出每一个元素
       System.out.println(list1.get(2));//返回list1集合中2下标的元素
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52373:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
333

Process finished with exit code 0

2.4 indexOf(Object o)

方法名称:public int indexOf(Object o)

在API中描述:返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回-1

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("444");
       //根据对象查找指定的位置,找不到返回-1
       int a = list1.indexOf("333");//查找list1集合中是否有“333”这个元素,如果有返回他的下标
       int b = list1.indexOf("555");//查找list1集合中是否有“555”这个元素,如果没有返回-1
       System.out.println(a);
       System.out.println(b);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52426:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
2
-1

Process finished with exit code 0

2.5 lastIndexOf(Object o)

方法名称:public int lastIndexOf(Object o)

在API中描述:返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回-1

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("333");
       list1.add("333");
       list1.add("444");
       //也可以这么理解:从后往前查找,找到该元素的第一个位置并返回它的下标
       int a = list1.lastIndexOf("333");//查找list1集合中是否有“333”这个元素,如果有返回的是他最后一次出现的下标。
       int b = list1.lastIndexOf("555");//查找list1集合中是否有“555”这个元素,如果没有返回-1
       System.out.println(a);
       System.out.println(b);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52489:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
4
-1

Process finished with exit code 0

2.6 listIterator()

方法名称:public ListIterator<E> listIterator()

在API中描述:返回此列表中元素的列表迭代器(按适当顺序)

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("444");
       //返回此列表中元素的列表迭代器
       ListIterator<String> iterator = list1.listIterator();
       while(iterator.hasNext()){  //判断下一个元素是否为null,如果不是返回true继续循环,如果是返回false,结束循环
           System.out.println(iterator.next());//每循环一次打印一次结果
       }
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52591:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
111
222
333
444

Process finished with exit code 0

2.7 listIterator(int index)

方法名称:public ListIterator<E> listIterator(int index)

在API中描述:从列表中的指定位置开始,返回列表中元素的列表迭代器(按正确顺序)

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("444");
       //从列表中的指定位置开始,返回列表中元素的列表迭代器(按正确顺序)
       ListIterator<String> iterator = list1.listIterator(1);//从集合的1下标开始返回
       while(iterator.hasNext()){  //判断下一个元素是否为null,如果不是返回true继续循环,如果是返回false,结束循环
           System.out.println(iterator.next());//每循环一次打印一次结果
       }
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52612:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
222
333
444

Process finished with exit code 0

2.8 remove(int index)

方法名称:public E remove(int index)

在API中描述:删除此列表中指定位置的元素(可选操作)

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("444");
       //删除此列表中指定位置的元素(可选操作)
       list1.remove(1);//删除集合1下标的元素
        System.out.println(list1);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52638:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
[111, 333, 444]

Process finished with exit code 0

2.9 set(int index,E element)

方法名称:public E set(int index,E element)

在API中描述:用指定的元素替换此列表中指定位置的元素(可选操作)

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("444");
       //修改指定位置的内容
       list1.set(1,"张三");//将集合1下标的元素修改为“张三”
        System.out.println(list1);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52670:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
[111, 张三, 333, 444]

Process finished with exit code 0

2.10 subList(int fromIndex,int toIndex)

方法名称:List<E> subList(int fromIndex,int toIndex)

在API在描述:返回指定的 fromIndex (包含)和 toIndex (不包括)之间的此列表部分的视图

import java.util.*;

public class Text1 {
    public static void main(String[] args) {
       List<String> list1 = new ArrayList<>();
       //list1集合中添加元素
       list1.add("111");
       list1.add("222");
       list1.add("333");
       list1.add("444");
       list1.add("555");
       list1.add("666");
       //返回指定的 fromIndex (包含)和 toIndex (不包括)之间的此列表部分的视图
        List<String> list = list1.subList(2, 5);//返回集合1中[2,5)部分的内容  [2,5)就是包含开头不包含结尾
        System.out.println(list);
    }
}

打印结果

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\java IDEA\idea\ideaIU-2020.1.4.win\lib\idea_rt.jar=52706:E:\java IDEA\idea\ideaIU-2020.1.4.win\bin" -Dfile.encoding=UTF-8 -classpath "E:\java IDEA\java\out\production\until" com.java.Demo3.Text1
[333, 444, 555]

Process finished with exit code 0