package com.sf.day16._04_iter; import java.util.*; /** * create By fjl */ public class Test { public static void main(String[] args) { // method3(); method5(); } private static void method5() { /** * 需求: 有一个集合,要求在控制台当中输入集合中元素一共有4个 * 遍历集合元素,如果元素是西游记就删除西游记, 要求用迭代器或者是foreach */ List list = new ArrayList<>(); Scanner scanner = new Scanner(System.in); for (int i = 0; i < 4; i++) { System.out.println("请输入四大名著:"); String item = scanner.next(); list.add(item); } // System.out.println(list); // 使用迭代器或者是forEach 进行迭代 // for (String str:list) { // if("西游记".equals(str)){ // list.remove("西游记"); // } // } // 解决要使用迭代器自带删除方法 Iterator iterator = list.iterator(); while (iterator.hasNext()){ String item = iterator.next(); if("西游记".equals(item)){ iterator.remove(); } } System.out.println(list); } private static void method4() { // jdk8 提供新特性 lambda表达式 List list = Arrays.asList("西游记", "红楼梦", "水浒传", "三国演义"); list.forEach(ele-> System.out.println(ele)); } private static void method3() { // 提供简单方式去创建List // Arrays.asList(): // ... 可变数组,可以传递多个参数 List list = Arrays.asList("西游记", "红楼梦", "水浒传", "三国演义"); for (String ele:list) { System.out.println(ele); } } private static void method2() { //1 如何获取迭代器对象 , 在集合当中是有 list.itertion(): List list = new ArrayList<>(); list.add("西游记"); list.add("红楼梦"); list.add("水浒传"); list.add("三国演义"); Iterator iterator = list.iterator(); System.out.println(iterator.hasNext()); // 如何拿到结合当中所有的元素呢? // 还是使用for循环吗? 不是我们使用的是while while (iterator.hasNext()){ System.out.println(iterator.next()); } } private static void method1() { // 先往List 集合当中添加4个元素 List list = new ArrayList<>(); list.add("西游记"); list.add("红楼梦"); list.add("水浒传"); list.add("三国演义"); // 遍历list集合 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }