JDK源码阅读-------自学笔记(二十)(java.util.List初探)
List简介
- List是有序、可重复的容器。
有序:List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素。
可重复:List允许加入重复的元素。更确切地讲,List通常允许满足 e1.equals(e2) 的元素重复加入容器。 - 除了Collection接口中的方法,List多了一些跟顺序(索引)有关的方法.
- List接口常用的实现类有3个:ArrayList、LinkedList和Vector.
初始化List
1 List<String> list = new ArrayList<>();
List接口中定义的方法
- void add(int index, E element); 在指定位置插入元素,以前元素全部后移一位
实例:
一般add()添加元素
1 list.add("A"); 2 list.add("B"); 3 list.add("D"); 4 list.add("E");
List的add添加
1 list.add(2, "C");
- E set(int index, E element); 修改指定位置的元素
实例:
1 list.set(4,"H"); 2 System.out.println(list);
- E get(int index); 返回指定位置的元素
1 System.out.println(“输出元素:”+list.get(1));
- E remove(int index); 删除指定位置的元素,后面元素全部前移一位
实例:
1 list.remove(2); 2 System.out.println(list);
- int indexOf(Object o);返回第一个匹配元素的索引,如果没有该元素,返回-1
实战:
1 // 从头到尾找到第一个"H" 2 System.out.println(list.indexOf("H"));
- int lastIndexOf(Object o);返回最后一个匹配元素的索引,如果没有该元素,返回-1
实战:
1 // 从尾到头找到第一个"H" 2 System.out.println(list.lastIndexOf("H"));
List并集和交集处理
- 创建实例的集合
1 List<String> list1 = new ArrayList<String>(); 2 list1.add("张三"); 3 list1.add("李四"); 4 list1.add("王五"); 5 6 List<String> list2 = new ArrayList<String>(); 7 list2.add("张三"); 8 list2.add("赵大"); 9 list2.add("钱二");
- containsAll() 包含
实例:
1 //list1是否包含list2中所有元素 2 System.out.println(list1.containsAll(list2));
- addAll() 合并两个集合
实例:
1 //将list2中所有元素都添加到list1中 2 list1.addAll(list2);
- removeAll() 一个集合中去除另一个集合的内容
实例:
1 //从list1中删除同时在list和list2中存在的元素 2 list1.removeAll(list2);
- retainAll() 两个集合取交集
实例:
1 //取list1和list2的交集 2 list1.retainAll(list2);
List常用方法
- 创建实例的集合
1 List<String> list = new ArrayList<>();
- boolean isEmpty(); 容器是否为空
实例:
1 System.out.println(list.isEmpty());
- boolean add(E e); 增加元素到容器中
实例:
1 list.add("张三"); 2 list.add("李四"); 3 System.out.println(list);
- int size(); 容器中元素的数量
实例:
1 System.out.println("list的数量大小:" + list.size());
- boolean contains(Object o); 容器中是否包含该元素
实例:
1 System.out.println("是否包含指定元素:" + list.contains("张三"));
- boolean remove(Object o); 从容器中移除元素
实例:
1 list.remove("李四"); 2 System.out.println(list);
- Object[] toArray();转化成Object数组
实例:
1 Object[] objects = list.toArray(); 2 3 System.out.println("转化成Object数组:" + Arrays.toString(objects));
- void clear();清楚容器中所有元素
实例:
1 list.clear(); 2 3 System.out.println("清空所有元素:" + list);
十年磨一剑,一剑破万法