`
gjhappyyy
  • 浏览: 259591 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

asList 后的remove异常

 
阅读更多

同样下面两组代码

 

情况一:

rUidList = new ArrayList<String>();

rUidList.add("1");

rUidList.add("2");

rUidList.add("3");

rUidList.remove(“1”);

 

情况二:

String str = "1,2,3,4";

rUidList = Arrays.asList(str.split(","));

rUidList.remove(“1”);

 

 

情况一:没有问题

情况二:报Exception in thread "main" java.lang.UnsupportedOperationException

 

这个java的一个bug吧。没有找到第二种情况为什么错??哪位大侠知道为什么第二种情况报错。

 

0
0
分享到:
评论
2 楼 paladin1988 2013-11-28  
多看看thinking in java吧。Arrays.asList产生之后的List和java.util.List是两个不同实现的List,也就是两个类。asList得到的类是大小不可改变的。。
1 楼 yangfuchao418 2012-12-07  
http://www.cnblogs.com/zolra/archive/2011/03/02/1969235.html

相关推荐

    Arrays.asList方法总结

    需要注意的是,尽管`List`不能直接添加或删除元素,但如果试图对基本数据类型数组通过`Arrays.asList`创建的`List`进行修改,如在段落四中尝试调用`set`方法,程序会在运行时抛出异常。然而,基本数据类型数组对应的...

    Java Arrays.asList使用方法解析

    因此,asList的add和remove方法会抛出UnsupportedOperationException异常,而set方法可以正常调用。这是因为Arrays.asList方法返回的ArrayList对象并不是我们通常使用的List集合,而是一个内部类,它的行为与我们...

    浅谈Arrays.asList() 和ArrayList类型区别

    list.remove(0); // 抛出UnsupportedOperationException list.set(1, "modifiedValue"); // 抛出UnsupportedOperationException ``` 另一方面,ArrayList是Java集合框架中的一种动态数组,它允许在任意位置插入、...

    java ArrayList.remove()的三种错误用法以及六种正确用法详解

    当你尝试删除一个对象,而该对象可能不存在于列表中时,`remove(Object o)`会返回false,而不会抛出异常。如果忽略了返回值,可能会误以为元素已被删除,实际上并没有。 3. **错误用法1.3 - 删除过程中修改列表...

    java集合代码

    4. **`UnsupportedOperationException`**: 如果我们尝试对不可变的集合或不支持特定操作的集合执行某些操作(如`add()`或`remove()`),就会抛出这个异常。例如,尝试对由`Arrays.asList()`创建的固定大小的列表执行...

    Java程序员们最常犯的10个错误.docx

    在`for-each`循环中删除元素会引发`ConcurrentModificationException`,因为编译器自动调用`.next()`在`.remove()`之后,而迭代器要求`.next()`在`.remove()`之前调用。 4. **Hashtable与HashMap的区别**: 这...

    Java程序员们最常犯的10个错误

    推荐使用泛型类型来增强类型安全性并避免潜在的类型转换异常。例如,如果方法需要处理字符串列表,应该定义为`List&lt;String&gt;`而不是`List`。 以上五个常见的错误不仅涉及基础知识的理解,也关乎性能优化以及编码规范...

    Java试题,编程题有难度

    - 为了防止重复抽取,每次抽取后需要将奖品从列表中移除,这就需要线程安全的操作,如`ConcurrentHashMap`的`remove()`方法。 3. **线程间通信** - 可以使用`join()`方法使一个线程等待另一个线程完成,以保证...

    Java程序员容易犯的10个错误

    当使用`Arrays.asList()`方法将数组转换为列表时,返回的是`java.util.Arrays.ArrayList`,这是一个内部静态类,不支持添加或删除元素。如果需要一个可变的ArrayList,应使用构造函数创建新的ArrayList实例,如: ...

    阿里巴巴Java编码规范答案.docx

    对 于 转 换 过 来 的 集 合 , 它 的 add/remove/clear 方 法 会 抛 出 :UnsupportedOperationException(C)。Arrays.asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组(D)。 9. 异常处理方式 在...

    阿里巴巴编码规范试题答案

    答案:在Java中,Arrays.asList方法的返回值是一个固定大小的列表,不能进行add、remove、clear操作,否则将抛出UnsupportedOperationException异常。 八、 阿里巴巴编码规范 阿里巴巴编码规范是阿里巴巴集团内部...

    阿里开发规范(集合与并发处理)

    **强制规定**:通过 `Arrays.asList()` 方法将数组转换为集合时,不应使用集合的修改方法(如 `add`, `remove`, `clear`),因为这些方法会抛出 `UnsupportedOperationException` 异常。 **说明**:`Arrays.asList`...

    arrayliSt---listDemo

    10. **异常处理** 在操作ArrayList时,需要注意边界检查,防止出现`IndexOutOfBoundsException`。例如,`get()`、`set()`、`remove()`等方法传入的索引需在0到`size()-1`之间。 这个"arrayliSt---listDemo"示例...

    Java编程中常见的坑

    这是因为迭代器维护了一个关于列表状态的快照,当列表的状态改变后,迭代器的快照可能不再有效,这时再次使用迭代器就会抛出`ConcurrentModificationException`异常。 **示例代码**: ```java List&lt;Integer&gt; list =...

    详解Java 集合类 List 的那些坑

    Arrays.asList 方法返回的 List 并不是我们常用的 java.util.ArrayList,而是 Arrays 的静态内部类 java.util.Arrays.ArrayList,该类继承自抽象类 java.util.AbstractList,但没有实现 add 方法,默认抛出 java....

    Java中数组与集合的相互转换实现解析

    需要注意的是,Arrays.asList() 方法返回的是一个固定大小的集合,不能使用add、remove、clear等方法,否则会抛出UnsupportedOperationException异常。如果需要使用这些方法,需要重新new一个ArrayList对象,例如: ...

    java开发常用API

    这些接口和类提供了数据存储和操作的方法,如add、remove、get和put等。 2. **IO流**:Java.IO包提供了用于输入/输出操作的类,包括FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等,支持对...

    示例iterator使用及技巧

    List&lt;String&gt; l = Arrays.asList("one", "two", "three", "four", "five", "six", "seven"); ListIterator&lt;String&gt; lit = l.listIterator(); while (lit.hasNext()) { System.out.println(lit.next()); } ``` ####...

    Java 编程 :常见问题汇总

    // remove first comma ``` 这段代码中,每次循环都会创建新的字符串,导致内存消耗增加,并且效率低下。 **正确的写法:** ```java StringBuilder sb = new StringBuilder(persons.size() * 16); // well ...

    解析Java的迭代器中的fast-fail错误检测机制

    List&lt;String&gt; strings = new ArrayList(Arrays.asList(stringArray)); Iterator&lt;String&gt; iterator = strings.iterator(); while (iterator.hasNext()) { if (iterator.next().equals("c")) { strings.remove("c")...

Global site tag (gtag.js) - Google Analytics