方法一
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("two");
list.add("two");
list.add("two");
for(int i=0;i<list.size();i++){
if(list.get(i).equals("two")){
list.remove(i);
}
}
System.out.println(list);
结果:
[one, two, two]
方法二
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("two");
list.add("two");
list.add("two");
for(String s:list){
if(s.equals("two")){
list.remove(s);
}
}
System.out.println(list);
结果:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at Test.main(Test.java:22)
方法三:
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("two");
list.add("two");
list.add("two");
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
String s = iter.next();
if(s.equals("two")){
iter.remove();
}
}
System.out.println(list);
结果:
[one]
结论:
删除还是用迭代器的比较好,其它的都会有问题.
分享到:
相关推荐
Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既...
这是最近面试时被问到的1道面试题,本... List platformList = new ArrayList(); platformList.add("博客园"); platformList.add("CSDN"); platformList.add("掘金"); for (String platform : platformList) { if
ArrayList<String> list = new ArrayList(); HashMap<Object,Object> hash = new HashMap<Object,Object>(); TreeMap<Object,Object> treeMap = new TreeMap<Object,Object>(); ...
主要会从ArrayList的构造方法、增加元素、删除元素、获取元素、查询元素、清空元素、判断元素是否存在以及ArrayList的遍历进行入手分析。 一:ArrayList的具体实现 1.1:构造函数 ArrayList list = new ArrayList();...
作业 10-08 1. 随机产生 20 个整数(10以内的),放入一个ArrayList中, 用迭代器遍历这个ArrayList 2. 并删除其中为 5 的数 3. 再产生 3 个整数,插入到位置 4 处 4. 把所有值为 1 的数都变成 10
为什么ArrayList,Vector等都不支持循环中remove1 Vector 直接删除2 Vector 遍历元素2.1 for循环遍历2.2 迭代器循环2.3 任意方向遍历2.4 Vector的foreach3. Vector迭代器删除4. Vector不使用迭代器删除元素5. Vector...
工具用ArrayList 每一次遍历整个队列 计算出总共被杀的人的所有位置 将计算出的位置的所有值设为0;然后将值为零的一次性删除 arrayList remove 0 ;直到队列的长度为1">n个人围成一个圈 每隔3个人杀一个人 问最后...
增加add,查看下表,遍历,删除值,下标,数组,改下标付值, 度是可变的 length:长度 capacity:容量,capacity不能小于实际内容的值,当你将length变大之后,capacity会自动变大。 2.它的类型是object,---写入和读取...
掌握对ArrayList类实例的遍历、插入、修改、删除等操作;(重点、难点)11.11 java.util.ArrayList(掌握)存放对象的动态数组,用户可以根据元素的索引访问元素允许放重复的元素,并且允许null元素11.11 ArrayList...
5.1 定义一个方法,接收ArrayList集合 5.2 方法中接收要删除学生的学号 5.3 遍历集合,获取 每个学生对象 5.4 使用学生对象的学号和录入的要删除的学号进行比较,如果相同,则将当前 学生对象从集合中删除 5.5 在...
第一个案例为大家分享了Android遍历特定目录下所有文件,包含子目录的,并删除最新创建的。 private boolean deleteLastFromFloder(String path) { boolean success = false; try { ArrayList<File> images = ...
2.Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢 ...
ArrayList-LinkedList ArrayList和LinkedList的完整演示。 我们如何添加,删除和遍历列表
java8 源码 List相关实现类的源码解析(JDK1.8) ...通过modCount的值来判断是否多线程同时操作,modCount用来记录List修改的次数:每修改一次(添加/删除等操作),将modCount+1 LinkedList 继承关系: LinkedLis
数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439
而LinkedList是一个基于链表实现的List,它在插入和删除元素时效率比ArrayList高,但是随机访问元素则需要遍历链表,效率较低。 List接口常用的方法 1、void add(int index, E element):在指定索引位置插入元素。 2...
3)了解List接口及主要实现类(ArrayList、LinkedList、Vector) 4)了解Map接口及主要实现类(HashMap、TreeMap、HashTable) 二、实验内容及步骤 1、编写程序练习将以下5个Person类的对象放在一个HashSet中。 姓名...
• 抽象的针对不同Java集合实现的比较实验,以找出时间与集合大小之间的关系,以及在检索过程中,从集合中删除元素以及遍历每个集合中的所有元素的过程。 • 方法用数字填充集合,并测量进行散文的时间,然后将结果...
1. 分别使用Vector、Hashtable、Stack,ArrayList、LinkedList和HashSet作为容器类,实现以下要求: (1) 向容器中添加1,000,000个随机整数。 (2) 遍历容器中的所有元素。 (3) 随机产生100,000个整数,在容器中查找...