`
wanghaisheng
  • 浏览: 92072 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java list.removeAll() 问题

 
阅读更多

在使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(),add()等,所以throw UnsupportedOperationException。 搞了很久,最后才查出来这个问题。最后的解决办法是使用List lst = new ArrayList()构造一个LIST ,然后通过for循环将值放进lst里面去。还是少用asList的好。。。。

分享到:
评论

相关推荐

    List.removeAll() 方法的性能效率

    在Java编程语言中,`List.removeAll()`方法是一个非常实用的函数,它允许我们从列表中一次性移除所有指定元素。这个方法是集合框架的一部分,它提供了高效的方式来进行元素的删除操作。本文将深入探讨`removeAll()`...

    Java List集合的应用.rar

    例如,如果要删除所有指定日期前的日志,可以先找到第一个符合条件的元素,然后用`list.removeAll()`删除所有匹配的元素。 3. **日志修改**:要修改日志项,先找到对应的日志对象,然后直接修改其属性,如`list.get...

    js中的类似于java对象List的工具List.js

    js中终于有了自己的List,类似于java中的List对象,本文件是源码,亲测有如下方法:add()、value、size()、get(index)、contains(key)、remove(index)、removeAll()。。。

    Java 中删除数组中所有出现的元素.docx

    如果数组已经转换为 List,我们可以直接调用 `removeAll()` 方法,传入一个包含要删除元素的集合。 ```java public static int[] removeElementsByRemoveAll(int[] arr, int key) { ArrayList<Integer> list = ...

    java集合.docx

    - **常用方法**:add(), add(int index, E element), addAll(), remove(int index), remove(Object o), removeAll(Collection<?> c), contains(Object o), size() - **遍历方式**: - for循环遍历 - 增强for循环...

    两个集合比较(新增、编辑、删除)

    list1.removeAll(list2); ``` `list1`现在只包含在第二个List中被删除的元素。 4. **ListUtil工具类**: 在实际开发中,通常会创建一个名为`ListUtil`的工具类来封装这些操作,以提高代码的可读性和复用性。...

    用java编写的简单五子棋小程序

    chessclient.userpad.userList.removeAll(); chessclient.inputpad.userChoice.removeAll(); chessclient.inputpad.userChoice.addItem("所有人"); while(userToken.hasMoreTokens()){ String user=...

    javaList的定义和方法

    5. `public void removeAll()` - 移除列表中的所有元素。 6. `public int getItemCount()` - 返回列表中的元素数量。 7. `public String getItem(int index)` - 获取列表中指定位置的元素。 8. `public String ...

    _Java-集合容器-2.List及其实现类.ppt

    - `removeAll(Collection c)`:移除列表中所有属于指定集合的元素。 - `clear()`:移除所有元素。 - `contains(Object o)`:检查列表是否包含指定元素。 - `containsAll(Collection c)`:检查列表是否包含指定集合的...

    java.util包源码pdf版

    - **实现方法**:`toArray()`, `containsAll(Collection<?> c)`, `addAll(Collection<? extends E> c)`等。 - **抽象方法**:`get(int index)`, `set(int index, E element)`, `add(int index, E element)`, `...

    java 小游戏(5子棋的实现)

    chessclient.userpad.userList.removeAll(); chessclient.inputpad.userChoice.removeAll(); chessclient.inputpad.userChoice.addItem("所有人"); while(userToken.hasMoreTokens()) { String user=(String)...

    关于 Java Collections API 您不知道的 5 件事,第 1 部分

    为了避免这些问题,推荐使用 `addAll()` 或 `removeAll()` 方法,并将包含待添加或移除元素的集合作为参数传递。这样可以一次性完成添加或移除操作,从而提高效率并减少潜在的并发问题。 #### 3. 使用 for 循环遍历...

    数据库工具类DatabaseUtil.java

    // BUG fix at 2006-04-29 by BeanSoft, added this to res list // MySql 数据库要求必需关闭 statement 对象, 否则释放不掉资源 // - 此观点错误, 因为关闭此对象后有时数据无法读出 //statement.close(); ...

    经典Java集合笔试选择题10道.doc

    C选项的`list.remove("java")`只会删除第一个匹配的"java",D选项的`list.removeAll("java")`会抛出`UnsupportedOperationException`,因为ArrayList不支持直接用字符串删除元素,需要传入一个集合。 3. **统计字符...

    避坑手册 - JAVA编码中容易踩坑的十大陷阱.doc

    正确的做法是使用迭代器(Iterator)进行删除,或者使用Java 8的Lambda表达式或`removeAll()`方法。例如: - 使用迭代器: ```java Iterator<User> iterator = userList.iterator(); while (iterator.hasNext())...

    java中循环遍历删除List和Set集合中元素的方法(推荐)

    如果你的项目使用的是Java 8或更高版本,可以利用`List`接口提供的`removeIf()`方法,它接受一个Predicate(断言),并删除满足条件的所有元素。 ```java List<CheckWork> list = this.getUserDao().getAll(); ...

    JAVA中的Iterator的用法

    - **`boolean removeAll(Collection c)`**:移除当前集合中出现的所有指定集合中的元素。 - **`boolean retainAll(Collection c)`**:只保留当前集合中也出现在指定集合中的元素。 - **`Object[] toArray()`**:将...

    Java提取2个集合中的相同和不同元素代码示例

    总结来说,本文介绍了Java集合操作中的一种重要方法——removeAll方法,并提供了一个简单的示例代码,演示如何使用removeAll方法从两个集合中提取相同和不同元素。希望本文能够对大家有所帮助。

Global site tag (gtag.js) - Google Analytics