假设要从a-z的列表中删除c、j、x、y四个元素(文中加粗字体是删除逻辑的代码)
public void removeTest(){ //1、首先构造a-z的列表 List<String> allList = new ArrayList<>(); for (char item:"abcdefghijklmnopqrstuvwxyz".toCharArray()) { allList.add(String.valueOf(item)); } //2、要删除的字符c、j、x、y List<String> removeList = new ArrayList<>(); for (char item:"cjxy".toCharArray()) { removeList.add(String.valueOf(item)); } //3、执行删除逻辑 //3.1 第一种方式,构造新的list List<String> newList = new ArrayList<>(); allList.forEach(item->{if(!removeList.contains(item)){newList.add(item);}}); System.out.println(" allList:"+allList); System.out.println("第一种方式结果验证:"+newList); //3.2 第二种方式,使用iterator Iterator<String> iterator = allList.iterator(); while (iterator.hasNext()){ if (removeList.contains(iterator.next())) //这里注意一下,一定要执行iterator.remove(),不要使用allList.remove() iterator.remove(); } System.out.println("第二种方式结果验证:"+allList); //3.3 第三种方式,这种方式要求jdk版本在1.8及以上 //<1>由于上面allList已经改变了,重新构造一个a-z的列表 List<String> allList1 = new ArrayList<>(); for (char item:"abcdefghijklmnopqrstuvwxyz".toCharArray()) { allList1.add(String.valueOf(item)); } System.out.println(" allList1:"+allList1); //<2>执行删除 allList1.removeIf(removeList::contains); System.out.println("第三种方式结果验证:"+allList1); }