List的遍历和删除元素
package test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListExercise { public static void main(String[] args){ List<String> list=new ArrayList<String>(); list.add("111"); list.add("222"); list.add("333"); list.add("444"); //1.for循环 // 1.1索引值 i 递增 // 优点:可以获取索引值。 System.out.println("========1.for循环:1.1 索引值 i 递增======"); for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); } // 1.2索引值 i 递减 // 优点:可以获取索引值,可以删除数据。 System.out.println("=======1.for循环:1.2 索引值 i 递减======"); for(int i=list.size()-1;i>=0;i--) { System.out.println(list.get(i)); if("444".equals(list.get(i))) { list.remove(i); } } //2. 增强for循环 // 缺点:不能获取索引值,也不能删除数据 System.out.println("=======2.增强for循环======"); for(String str:list) { System.out.println(str); } //3.迭代器(原理:生成一个链表,链表的一个节点保存信息,节点的数据部分保存list的元素地址) // 优点:可以删除元素。 // 缺点:不能获取索引值。 System.out.println("=======3.迭代器======"); Iterator<String> itr=list.iterator(); while(itr.hasNext()) { String str=itr.next(); System.out.println(str); if("222".equals(str)) { itr.remove(); } } System.out.println("==========打印list最后剩下的元素=========="); Iterator<String> itr2 =list.iterator(); for(;itr2.hasNext();) { System.out.println(itr2.next()); } } }
运行结果:
========1.for循环:1.1 索引值 i 递增======
111
222
333
444
=======1.for循环:1.2 索引值 i 递减======
444
333
222
111
=======2.增强for循环======
111
222
333
=======3.迭代器======
111
222
333
==========打印list最后剩下的元素==========
111
333