List如何一边遍历,一边删除? 冬蒽
发布时间:2020-12-15 02:47:22 所属栏目:Java 来源:网络整理
导读:主要有以下3种方法: 使用Iterator的remove()方法 使用for循环正序遍历 使用for循环倒序遍历 1. 使用Iterator的remove()方法 ? public static void main(String[] args) { ListString platformList = new ArrayList(); platformList.add("园"); platformList
主要有以下3种方法:
1. 使用Iterator的remove()方法? public static void main(String[] args) { List<String> platformList = new ArrayList<>(); platformList.add("园"); platformList.add("CSDN"); platformList.add("掘金"); Iterator<String> iterator = platformList.iterator(); while (iterator.hasNext()) { String platform = iterator.next(); if (platform.equals("园")) { iterator.remove(); } } System.out.println(platformList); } ?每次删除一个元素,都会将modCount的值重新赋值给expectedModCount,这样2个变量就相等了,不会触发java.util.ConcurrentModificationException异常。 2. 使用for循环正序遍历public static void main(String[] args) { List<String> platformList = new ArrayList<>(); platformList.add("园"); platformList.add("CSDN"); platformList.add("掘金"); for (int i = 0; i < platformList.size(); i++) { String item = platformList.get(i); if (item.equals("园")) { platformList.remove(i); i = i - 1; } } System.out.println(platformList); } ? 3. 使用for循环倒序遍历public static void main(String[] args) { List<String> platformList = new ArrayList<>(); platformList.add("园"); platformList.add("CSDN"); platformList.add("掘金"); for (int i = platformList.size() - 1; i >= 0; i--) { String item = platformList.get(i); if (item.equals("掘金")) { platformList.remove(i); } } System.out.println(platformList); } ? ? ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |