List也是一个接口,继承了Conllection。是Conllection的一个子接口。
List接口大概的一个结构体系是这样子的
通过源码注释所得: list是一个有序,可重复的集合。
LIst只是一个接口,都是需要子类来实现的,没什么好讲的。具体看子类实现吧
List list = new ArrayList();
// 往集合添加一个元素
list.add(0);
// 往集合指定位置添加一个元素
list.add(0,1);
System.out.println(list); // [1, 0]
List list1 = new ArrayList();
list1.add("2");
// 往集合里添加一个集合
list.addAll(list1);
System.out.println(list); // [1, 0, 2]
List list2 = new ArrayList();
list2.add("3");
// 往集合指定位置添加一个集合
list.addAll(0,list2);
System.out.println(list); // [3, 1, 0, 2]
// 这里注意一下,当指定了集合的泛型之后,只能同类型对象的集合使用addAll(),否则在编译时期就会报错
List<String> listStr = new ArrayList();
ArrayList<String> listStr1 = new ArrayList();
List<Integer> listInt = new ArrayList();
ArrayList<Integer> listInt1 = new ArrayList();
listStr.addAll(listInt); // ×
listStr.addAll(listStr1); // √
// ===核心方法 size()
// 获取集合的长度
int size = list.size();
System.out.println(size); // 4
// ===核心方法 isEmpty()
// 判断集合是否为空
boolean empty = list.isEmpty();
System.out.println(empty); // false
List list3 = new ArrayList();
boolean empty1 = list3.isEmpty();
System.out.println(empty1); // true
// ===核心方法 contains()
// 判断集合是否包含某个元素(对数据类型有要求)
boolean contains = list.contains(0);
System.out.println(contains); // false
boolean contains1 = list.contains("0");
System.out.println(contains1); // true
// ===核心方法 get()
// 获取指定位置的元素
Object o = list.get(0);
System.out.println(o.toString()); // 3
// ===核心方法 remove() removeAll() retainAll()
// 移除指定位置的元素
list.remove(3);
System.out.println(list); // [3, 1, 0]
// 移除指定的元素
list.remove("3");
System.out.println(list); // [1, 0]
list.add(2);
list.add(3);
list.add(4);
list.add(5);
System.out.println(list);
List list4 = new ArrayList(); // [1, 0, 2, 3, 4, 5]
list4.add(3);
list4.add(5);
// 移除指定集合里的所有元素
list.removeAll(list4);
System.out.println(list); // [1, 0, 2, 4]
List list5 = new ArrayList();
list5.add(1);
list5.add(2);
// 移除集合里除了指定集合外的所有元素
list.retainAll(list5);
System.out.println(list); // [1, 2]
// ===核心方法 subList()
list.add(3);
list.add(2);
list.add(5);
list.add(4);
System.out.println(list); // [1, 2, 3, 2, 5, 4]
// 截取集合里指定位置的元素
List list6 = list.subList(2, 4);
System.out.println(list6); // [3, 2]