/** * 遍历list的方法 * @param args */ public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); list.add("333"); list.add("222"); 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的元素地址,通过指针实现链表的遍历,从而实现list的遍历。) // 优点:可以删除元素 // 缺点:不可以获取索引值 System.out.println("=======3.迭代器======"); Iterator<String> itr = list.iterator(); System.out.println("删除了如下的元素:"); while (itr.hasNext()) { // 一次判断hasNext(),一次next() String str = itr.next(); if ("222".equals(str)) { System.out.println(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 递增======111222333222444=======1.for循环:1.2 索引值 i 递减======444222333222111=======2.增强for循环======111222333222=======3.迭代器======删除了如下的元素:222222打印list最后剩下的元素:111333
新闻热点
疑难解答