集合的框架
List集合遍历
List作为Collction接口的子接口,在Collection部分的三种遍历方式,这里都可以使用。 同时, 还添加了两种用来遍历集合的其他方式。
- 下标遍历
顾名思义, 类似于数组的下标遍历。 遍历集合中的所有的下标, 依次获取指定下标位的元素。
import java.util.*;
/**
* 下标遍历
*/
public class Test {
public static void main(String[] args) {
List<Integer> list=new ArrayList<>();
Collections.addAll(list,10,20,30,40,50,60,70,80,90,100);
for (int i = 0; i <list.size() ; i++) {
System.out.print(list.get(i)+" ");
}
}
}
- List迭代器
这种方式, 类似于迭代器。 在List集合中, 有一个方法listIterator()
, 可以获取到一个ListIterator
接口的引用。 而ListIterator
是Iterator
的子接口。 因此在保留了传统的迭代器的迭代方法的基础上, 还添加了若干个其他的方法。
- 使用ListIterator, 在遍历集合中的元素的同时, 可以向集合中添加元素、删除元素、修改元素。
- 但是, 这里对集合中的元素操作, 并不是使用 List 接口中的方法, 而是用 ListIterator 接口中的方法完成。
package practice;
import java.util.*;
/**
* List迭代器进行遍历
*/
public class Test {
public static void main(String[] args) {
List<Integer> list=new ArrayList<>();
Collections.addAll(list,10,20,30,40,50,60,70,80,90,100);
//获取迭代器对象
ListIterator<Integer> integerListIterator=list.listIterator();
//从指定下标位开始遍历
//ListIterator<Integer> integerListIterator=list.listIterator(4);
//循环遍历
while(integerListIterator.hasNext()){
//获取迭代器当前指向的对象
Integer integer=integerListIterator.next();
System.out.print(integer+" ");
//元素操作
if(integer==30){
//在30的后面加上300
//integerListIterator.add(300);
//移除30
//integerListIterator.remove();
//修改,将30修改成300
integerListIterator.set(300);
}
}
System.out.println();
for (int i :
list) {
System.out.print(i+" ");
}
}
}