一、Collection接口定义的方法
List、Set是Collection的子接口,意味着所有List、Set的实现类都有下面的方法
二、List特点和常用方法
List接口常用的实现类有3个:ArrayList、LinkedList和Vector
- 有序:List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素
- 可重复:List允许加入重复的元素。更确切地讲,List通常允许满足 e1.equals(e2) 的元素重复加入容器。
1、List接口中定义的方法
2、 List常用方法的使用
import java.util.ArrayList;
import java.util.List;
List<String> Li = new ArrayList<String>();
System.out.println(Li.isEmpty());
Li.add("hello"); //在list末添加元素hello
Li.add("good");
System.out.println("list的大小为:"+Li.size());
System.out.println("list是否为空:"+Li.isEmpty());
System.out.println("list中为hello的下标索引为:"+Li.indexOf("hello"));
System.out.println("list中为oo的下标索引为:"+Li.lastIndexOf("oo"));
Li.set(1,"sad"); //将下标为1的元素设置为"sad"
System.out.println("list中下标为1的值为:"+Li.get(1));
System.out.println(Li);
System.out.println("list是否包含hello"+Li.contains("hello"));
Li.remove("sad"); //将"sad"元素移除
System.out.println(Li);
Li.clear(); //将list内容全部清空
System.out.println("list是否为空:"+Li.isEmpty());
三、 两个List的元素处理
1、判断li1是否包含li2所有元素
li1.containsAll(li2)
2、 将li2的所有元素添加到li1
li1.addAll(li2);
3、 移除li1中所有和li2都包含的元素
li1.removeAll(li2);
4、 移除li1中所有和li2非交集的元素
li1.retainAll(li2);
5、案例实现
List<Integer> li1 = new ArrayList<Integer>();
List<Integer> li2 = new ArrayList<Integer>();
li1.add(1);
li1.add(2);
li2.add(2);
li2.add(3);
System.out.println(li1.containsAll(li2)); //false
li1.addAll(li2);
System.out.println(li1); //[1,2,2,3]
li1.removeAll(li2);
System.out.println(li1); //[1]
li1.retainAll(li2);
System.out.println(li1); //[]
四、List中操作索引的常用方法
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.println(list); //[a,b,c,d]
list.add(1,"33"); //在下标为1的位置插入33
System.out.println(list); //[a,33,b,c,d]
list.remove(0); //移除下标为0的元素
System.out.println(list); //[33,b,c,d]
list.set(2,"66"); //将下标为2的元素换为66
System.out.println(list); //[33,b,66,d]
list.add("b"); //在末尾添加元素b
System.out.println(list); // [33,b,66,d,b]
System.out.println(list.indexOf("b")); // 1 从头到尾找到第一个"B"
System.out.println(list.lastIndexOf("b")); //4 从尾到头找到第一个"B"
System.out.println(list.get(1)); //b 找到下标1的元素