说一下这个Java集合(三) List子接口

List概念

  • 有序
  • 有下标
  • 元素可重复

创建集合对象

List list = new ArrayList<>();

常用方法

  • void add(int index, E e) 指定位置index插入e。
  • boolean addAll(int index, Collection c) 指定位置index插入c的所有元素。
  • Object get(int index) 指定位置index提取出元素。
  • int indexOf(Object o) 返回第一次查找到元素o的索引,如果没有则返回-1。
  • E remove(int index) 移除位置为index的元素。
  • E set(int index, E element) 指定位置index的元素改为E。
  • List subList(int one, int two) 输出索引one到two的List集合。
  • ListIterator listIterator() 返回此列表元素的列表迭代器(按适当顺序)。
  • ListIterator listIterator(int index) 从指定位置开始index返回此列表元素的列表迭代器(按适当顺序)。

iterator 和ListIterator的区别

  • ListIterator 可以在遍历集合时添加,修改和删除。
  • ListIterator 只用于List和其子类。iterator用于所有单列集合。
  • ListIterator有更多的功能。

List的遍历

1,普通for循环

for(int i=0;i<list.size();i++){
    sout(list.get(i);
}

2,增强for循环

for(Object obj : list){
    sout(obj);
}

3,使用迭代器

Iterator it = collection.iterator();
while(it.hasNext()){
  String object = (String)it.next(); //强转
  // 可以使用it.remove(); 进行移除元素
  // collection.remove(); 不能用collection其他方法 会报并发修改异常
}

4,使用列表迭代器

上文有与迭代器的区别。

ListIterator li = list.listIterator();
while(li.hasNext()){
  System.out.println(li.nextIndex() + ":" + li.next()); //从前往后遍历
}

while(li.hasPrevious()){
  System.out.println(li.previousIndex() + ":" + li.previous()); //从后往前遍历
}

点击回到首页

正文完