List集合
概念
List接口继承了Collection,具有Collection接口的所有方法。
特点
1、有序。List集合中元素的插入顺序和取出顺序是一样的。 2、可重复。List集合中的元素是可以重复的。 3、索引。List集合可以通过索引对元素进行操作。
List集合中常用的方法
方法 | 说明 |
addAll(int index, Collection<? extends E> c) |
将集合中的所有元素插入到List中指定位置 |
replaceAll(UnaryOperator<E> operator) |
使用给定的内容替换数组中的元素 |
sort(Comparator<? super E> c) |
对集合进行排序 |
get(int index) |
获取集合指定位置的元素 |
set(int index, E element) |
为集合中指定位置元素赋值 |
add(int index, E element) |
在集合中指定位置添加元素 |
remove(int index) |
移除集合中指定位置的元素 |
indexOf(Object o) |
获取指定元素在集合中首次出现的索引 |
lastIndexOf(Object o) |
获取指定元素在集合中最后次出现的索引 |
listIterator() |
返回集合中的列表中元素的迭代器(以正确的方式) |
listIterator(int index) |
从集合中指定位置开始,返回集合中的列表中元素的迭代器(以正确的方式) |
subList(int fromIndex, int toIndex) |
获取集合中formIndex位置到toIndex位置内的元素集合 |
实例化对象
List list = new ArrayList();
添加元素
list.add(0, "西瓜"); list.add(1, "苹果"); list.add(2, "香蕉"); list.add(3, "香蕉"); //如果不指定索引,会将该元素添加到集合的尾部 list.add("橘子");
删除元素
list.remove(0);//根据索引删除元素 list.remove("香蕉");//删除指定元素
清空元素
list.clear();
遍历元素
1、for循环
for (int i = 0; i < list.size(); i++) { System.out.println("集合元素:" + list.get(i)); }
2、增强for
for (Object object : list) { System.out.println("集合元素:" + object); }
3、迭代器iterator
// 只能正向遍历,支持删除元素 Iterator iterator = list.iterator(); while (iterator.hasNext()) { //注意:迭代器使用过程中不允许对集合元素进行更改操作 // list.remove("苹果"); //可以使用迭代器内置方法进行操作 iterator.remove(); System.out.println("集合元素:" + iterator.next()); }
4、列表迭代器ListIterator
//和iterator的区别:1、可以自行指定遍历方向,从前向后/从后向前。2、支持添加、修改、删除元素。 ListIterator listIterator = list.listIterator(); //从前向后遍历 while (listIterator.hasNext()) { System.out.println(listIterator.next()); } //从后往前 while (listIterator.hasPrevious()) { System.out.println(listIterator.previous()); }
List中的判断
System.out.println("判断集合是否包含元素:" + list.contains("西瓜")); System.out.println("判断集合是否为空:" + list.isEmpty());
获取元素索引
System.out.println("元素首次出现索引:" + list.indexOf("香蕉"));
System.out.println("元素最后一次出现索引:" + list.lastIndexOf("香蕉"));
截取并返回数组中的一部分
List list = new ArrayList(); //添加元素时,如果元素为基本类型为数字时,会有一个自动装箱的操作,也就是new Integer(20)。 list.add(20); list.add(20); list.add(20); list.add(50); list.add(60); //返回的newList从formIndex开始,到toIndex-1结束,不包含toIndex List newList = list.subList(2, 4);
返回值:[20,50]