目录
二 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 是 Collection 的子接口,里面的所有内容都是允许重复的。
List 子接口的定义:public interface List
此接口上依然使用了泛型技术。此接口对于 Collection 接口来讲有如下的扩充方法
在 List 接口中有以上 10 个方法是对已有的 Collection 接口进行的扩充。我们要知道的是List接口是Colection接口的子接口,List接口继承了Colection接口里面的所有方法,如果想看Colection接口里常用的15个方法,请点开下面链接查看:https://blog.csdn.net/weixin_50396997/article/details/110622117
接下来我带大家重点了解一下List接口中扩充的这10个方法:
方法名称:public void add(int index,E element)
API中描述:将指定元素插入此列表中的指定位置(可选操作)
我们先在集合list中添加一组元素
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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 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
方法名称:boolean addAll(int index,Collection c)
在API中描述:将指定集合中的所有元素插入到指定位置的此列表中(可选操作)
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List list1 = new ArrayList<>();
List 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
方法名称:public E get(int index)
在API中描述:返回此列表中指定位置的元素
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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
方法名称:public int indexOf(Object o)
在API中描述:返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回-1
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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
方法名称:public int lastIndexOf(Object o)
在API中描述:返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回-1
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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
方法名称:public ListIterator
在API中描述:返回此列表中元素的列表迭代器(按适当顺序)
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List list1 = new ArrayList<>();
//list1集合中添加元素
list1.add("111");
list1.add("222");
list1.add("333");
list1.add("444");
//返回此列表中元素的列表迭代器
ListIterator 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
方法名称:public ListIterator
在API中描述:从列表中的指定位置开始,返回列表中元素的列表迭代器(按正确顺序)
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List list1 = new ArrayList<>();
//list1集合中添加元素
list1.add("111");
list1.add("222");
list1.add("333");
list1.add("444");
//从列表中的指定位置开始,返回列表中元素的列表迭代器(按正确顺序)
ListIterator 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
方法名称:public E remove(int index)
在API中描述:删除此列表中指定位置的元素(可选操作)
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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
方法名称:public E set(int index,E element)
在API中描述:用指定的元素替换此列表中指定位置的元素(可选操作)
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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
方法名称:List
在API在描述:返回指定的 fromIndex
(包含)和 toIndex
(不包括)之间的此列表部分的视图
import java.util.*;
public class Text1 {
public static void main(String[] args) {
List 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 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