List remove
来源:互联网 发布:西部数码域名实名认证 编辑:程序博客网 时间:2024/06/05 04:18
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author hello_yun
*
*/
public class ListOperation
{
/**
* @param args
*/
public static void main(String[] args)
{
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new CopyOnWriteArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list2.add(3);
list2.add(4);
// try
// {
// for(Integer in : list1){
// list1.remove(in);//直接循环 删除对象会抛异常
// }
// } catch (Exception e)
// {
// System.out.println("list1 size : "+list1.size());
// System.out.println("循环list1 异常 : "+e);
// }
for(Integer in : list2){
list2.remove(in);
System.out.println("list2 : "+list2.size());
}
list1.add(1);
list1.add(2);
list2.add(3);
list2.add(4);
for (Iterator iterator = list1.iterator(); iterator.hasNext();)
{
iterator.next();
iterator.remove();
}
try
{
for (Iterator iterator = list2.iterator(); iterator.hasNext();)
{
iterator.next();
iterator.remove();
}
} catch (Exception e)
{
System.out.println("copyOnWriteArrayList remove : "+ e);
}
//-------------这种方式 不会抛异常 -------------------------
try
{
for(int i=0;i<list1.size();i++){
list1.remove(i);
}
} catch (Exception e)
{
System.out.println("list1 size : "+list1.size());
System.out.println("循环list1 异常 : "+e);
}
}
}
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author hello_yun
*
*/
public class ListOperation
{
/**
* @param args
*/
public static void main(String[] args)
{
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new CopyOnWriteArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list2.add(3);
list2.add(4);
// try
// {
// for(Integer in : list1){
// list1.remove(in);//直接循环 删除对象会抛异常
// }
// } catch (Exception e)
// {
// System.out.println("list1 size : "+list1.size());
// System.out.println("循环list1 异常 : "+e);
// }
for(Integer in : list2){
list2.remove(in);
System.out.println("list2 : "+list2.size());
}
list1.add(1);
list1.add(2);
list2.add(3);
list2.add(4);
for (Iterator iterator = list1.iterator(); iterator.hasNext();)
{
iterator.next();
iterator.remove();
}
try
{
for (Iterator iterator = list2.iterator(); iterator.hasNext();)
{
iterator.next();
iterator.remove();
}
} catch (Exception e)
{
System.out.println("copyOnWriteArrayList remove : "+ e);
}
//-------------这种方式 不会抛异常 -------------------------
try
{
for(int i=0;i<list1.size();i++){
list1.remove(i);
}
} catch (Exception e)
{
System.out.println("list1 size : "+list1.size());
System.out.println("循环list1 异常 : "+e);
}
}
}
使用 copyOnWriteArrayList时 ,通过 list.remove()方法是安全的 但是使用iterator.remove是会抛异常的
查看copyOnWriteArrayList源码 会发现 iterator.remove方法的实现是直接抛异常的
/**
* Not supported. Always throws UnsupportedOperationException.
* @throws UnsupportedOperationException always; <tt>remove</tt>
* is not supported by this iterator.
*/
public void remove() {
throw new UnsupportedOperationException();
}
但是通过ArrayList实现时, list.remove会抛异常 java.util.ConcurrentModificationException,
但是 ArrayList的 iterator.remove不会抛异常
0 0
- List remove
- List::remove()
- list remove
- list remove
- list.remove()
- List remove
- 关于List中的remove
- list如何remove
- Python list del remove
- 纠结的List remove
- JAVA list如何remove
- list remove 方法
- list remove 方法
- list remove 方法
- java list如何remove
- 关于list的remove
- golang list.remove
- List集合 remove
- 欢迎使用CSDN-markdown编辑器
- 简述 OAuth 2.0 的运作流程
- Linux环境下C程序开发
- dubbo 找不到dubbo.xsd报错 原因
- 一个爬虫
- List remove
- eclipse下项目报错class path resource [com/xzhang/mapping/] cannot be resolved to URL because it does not
- Linux维护工程师面试题
- net idautomationhc39m条形码字体生成条形码
- gulp+browser-sync使用方法
- 实现展示的数据导出到excel表中()
- 【BLE】CC2541连接之配对与绑定实验
- Python爬虫实战——豆瓣电影Top250
- dpkg默认安装设置