关于ArrayList使用时常遇到的问题以及解决方法
2012-07-12 16:04
856 查看
事例1:ArrayList在迭代的时候不能去改变自身的元素集合,否则会抛异常:java.util.ConcurrentModificationException
Java代码
List<Integer> list = new ArrayList<Integer>();
list.add(new Random().nextInt(10));
list.add(new Random().nextInt(10));
//开始迭代
Iterator<Integer> iter = list.iterator();
while (iter.hasNext()) {
System.out.println("迭代:" + iter.next());
list.add(new Random().nextInt());
}
事例2:ArrayList在迭代的时候可以用迭代器删除ArrayList中的元素
Java代码
List<Integer> list = new ArrayList<Integer>();
list.add(new Random().nextInt(10));
list.add(new Random().nextInt(10));
//开始迭代
Iterator<Integer> iter = list.iterator();
while (iter.hasNext()) {
System.out.println(iter.next()+"元素被删除");
iter.remove();
}
事例3:CopyOnWriteArrayList是线程安全的集合类,该集合在迭代的时候,可以改变自身的元素集合
Java代码
List<Integer> syncList = new CopyOnWriteArrayList<Integer>();
syncList.add(1);
syncList.add(5);
Iterator<Integer> iter = syncList.iterator();
int flag;
while (iter.hasNext()) {
flag = iter.next();
System.out.println("迭代:" + flag);
syncList.remove(new Integer(flag));
}
System.out.println("集合的大小:" + syncList.size());
事例4:CopyOnWriteArrayList是线程安全的集合类,该集合在迭代的时候,不能用迭代器去删除集合中的元素 ,否则会抛异常:java.lang.UnsupportedOperationException
Java代码
List<Integer> syncList = new CopyOnWriteArrayList<Integer>();
syncList.add(1);
syncList.add(5);
Iterator<Integer> iter = syncList.iterator();
while (iter.hasNext()) {
System.out.println("迭代:" + iter.next());
iter.remove();
}
System.out.println("集合的大小:" + syncList.size());
此文章转自:/article/4133412.html
Java代码
List<Integer> list = new ArrayList<Integer>();
list.add(new Random().nextInt(10));
list.add(new Random().nextInt(10));
//开始迭代
Iterator<Integer> iter = list.iterator();
while (iter.hasNext()) {
System.out.println("迭代:" + iter.next());
list.add(new Random().nextInt());
}
事例2:ArrayList在迭代的时候可以用迭代器删除ArrayList中的元素
Java代码
List<Integer> list = new ArrayList<Integer>();
list.add(new Random().nextInt(10));
list.add(new Random().nextInt(10));
//开始迭代
Iterator<Integer> iter = list.iterator();
while (iter.hasNext()) {
System.out.println(iter.next()+"元素被删除");
iter.remove();
}
事例3:CopyOnWriteArrayList是线程安全的集合类,该集合在迭代的时候,可以改变自身的元素集合
Java代码
List<Integer> syncList = new CopyOnWriteArrayList<Integer>();
syncList.add(1);
syncList.add(5);
Iterator<Integer> iter = syncList.iterator();
int flag;
while (iter.hasNext()) {
flag = iter.next();
System.out.println("迭代:" + flag);
syncList.remove(new Integer(flag));
}
System.out.println("集合的大小:" + syncList.size());
事例4:CopyOnWriteArrayList是线程安全的集合类,该集合在迭代的时候,不能用迭代器去删除集合中的元素 ,否则会抛异常:java.lang.UnsupportedOperationException
Java代码
List<Integer> syncList = new CopyOnWriteArrayList<Integer>();
syncList.add(1);
syncList.add(5);
Iterator<Integer> iter = syncList.iterator();
while (iter.hasNext()) {
System.out.println("迭代:" + iter.next());
iter.remove();
}
System.out.println("集合的大小:" + syncList.size());
此文章转自:/article/4133412.html
相关文章推荐
- 生产环境使用elasticsearch遇到的一些问题以及解决方法
- Android Studio 使用中遇到的一些问题以及解决方法
- 使用debmirror为Debian建立本地源的方法,以及遇到的GPG key验证错误问题的解决方法
- erlang的dialyzer使用中遇到的问题,以及解决方法
- 在使用 Spring Boot 和 MyBatis 动态切换数据源时遇到的问题以及解决方法
- Struts2中使用OGNL表达式语言访问静态方法和静态属性以及我遇到的问题和解决方法
- 表单包含file上传文件提交,使用ajaxSubmint或者ajaxForm 遇到的问题以及解决方法
- 使用MFC过程中遇到的问题以及解决方法(二)
- 使用elasticsearch遇到的一些问题以及解决方法
- 生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- 数据库sql server安装使用遇到的问题以及解决方法
- 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为
- 使用elasticsearch遇到的一些问题以及解决方法
- 使用elasticsearch遇到的一些问题以及解决方法
- 在SharePoint中服务器端使用Word编程模型转换PDF遇到的问题以及解决方法
- 使用Ubuntu遇到的问题以及解决方法(持续更新)
- 使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- Logstash使用遇到问题以及解决方法
- 生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决