1、List系列集合的特点
List系列集合的特点:元素有序,可重复,有索引
2、List接口的常用方法
这些方法都比较简单,其中要注意的是remove方法:
为什么说它要注意呢?比如我们现在用ArrayList实现类实现了List接口,创建了一个Integer集合list,里面存储了三个元素1,2,3 ,我希望删除元素为1的这个值,如果用remove(1)方法,我们可以发现这里的1指的并不是元素值,而是集合中的索引值,也就是说实际删除的是2这个元素。
这主要是因为发生方法的重载的时候,删除时它优先调用形参与实参类型一致的那个方法,数字1是整型,所以这里的1指的是删除索引值。如果要删除元素值,这里要进行手动的装箱操作:将数字1变为Integer类型。具体看下面的代码:
//创建集合并添加元素
List<Integer> list = new ArrayList<>();
//向集合中添加元素
list.add(1);
list.add(2);
list.add(3);
//删除索引为1的元素
//list.remove(1);
//删除元素为1的元素:手动装箱:将元素值1转换为Integer类型
Integer i = Integer.valueOf(1);
list.remove(i);
3、List接口的5种遍历方式
因为Collection接口时List接口的“祖宗”类,因此Collection接口中写过的3种遍历方式对List都适用,这里我们主要实现一下List中的其他两种遍历方式。
(1)普通for循环:因为List是有索引的
// for (int i = 0; i < list.size(); i++) {
// String s = list.get(i);
// System.out.println(s);
// }
(2)List独有的列表迭代器
其实ListIterator是Itertor的子接口,使用方式是相同的,遵循Iterator的所有原则: 包括在迭代器遍历的时候不能使用集合的方式添加或删除元素,但是可以用Iterator对象删除元素 ,相较于Iterator,ListIterator一个方法:可以在迭代器遍历的时候使用ListIterator添加元素。
ListIterator<String> listIt = list.listIterator();
while (listIt.hasNext()){
String str = listIt.next();
if(str.equals("aaa")){
listIt.add("qq");//迭代器的方式添加元素
}
}
System.out.println(list);
关于List接口的学习就到这。本人菜鸟一枚,主要记录一下自己这个阶段的的学习内容,有什么不足的地方希望大家指出呀~~