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

Arrays.asList() 返回的list不能add,remove

阅读更多

Arrays.asList()返回的是List,而且是一个定长的List,所以不能转换为ArrayList,只能转换为AbstractList
原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没有消失,对列表的任何操作最终都反映在数组上. 所以不支持remove,add方法的

 

List s = Arrays.asList("1", "2");
		//		List<String> list = new ArrayList<String>();
		//		list.add("6");
		//		list.add("7");
		Object ss = s.remove(0);
		System.out.println(ss);

 以上报错

Exception in thread "main" java.lang.UnsupportedOperationException

 

at java.util.AbstractList.remove(AbstractList.java:144)

分享到:
评论
1 楼 无痕海 2014-07-18  
可以选择用迭代器来删除。

相关推荐

    Arrays.asList方法总结

    这种特性使得`List`和数组之间保持了一致性,但也限制了`List`的一些功能,比如不能直接添加或删除元素(因为`Arrays.ArrayList`内部类没有实现`add`和`remove`方法)。 需要注意的是,尽管`List`不能直接添加或...

    Java Arrays.asList使用方法解析

    但是,需要注意的是,asList并不是我们通常使用的List集合,而是一个内部类,它的add、remove和clear方法都会抛出UnsupportedOperationException异常。 例如: ```java String[] strs = {"1","2","3"}; List...

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

    List&lt;String&gt; list = Arrays.asList(array); ``` 在这个例子中,Arrays.asList()将字符串数组转换为了一个List。但是,值得注意的是,这个List并不是我们通常使用的java.util.ArrayList类的实例,而是Arrays类的一...

    浅谈Arrays.asList()方法的使用

    使用`Arrays.asList()`转换得到的`List`是不可变的,这意味着你不能直接调用`add()`、`remove()`等修改集合大小的方法。尝试这样做会抛出`UnsupportedOperationException`。这是因为这个`List`实际上是对原始数组的...

    list转数组.docx

    通过`Arrays.asList(strArray)`可以直接将数组转换为List,但需要注意的是,这种方式生成的List是固定大小的,不支持添加(add)和删除(remove)操作。这是因为这个List实际上是`java.util.Arrays`类中的一个内部...

    详解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集合框架的使用。集合的运算

    List&lt;String&gt; list = new ArrayList(Arrays.asList("A", "B", "C", "D", "E")); List&lt;String&gt; subset = list.subList(1, 4); // 子集为 ["B", "C", "D"] ``` 3. 集合的交集:Java集合框架没有直接提供计算交集的...

    获取两个数组相同的元素或不同的元素输出

    uniqueInArray1.removeAll(Arrays.asList(array2)); uniqueInArray2.removeAll(Arrays.asList(array1)); System.out.println("array1独有的元素: " + uniqueInArray1); System.out.println("array2独有的元素: " + ...

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

    ArrayList&lt;Integer&gt; list = new ArrayList(Arrays.asList(arr)); list.removeAll(Collections.singleton(key)); return list.stream().mapToInt(Integer::intValue).toArray(); } ``` 5. **使用 List.removeIf()...

    Java笔记word.docx

    `Arrays.asList()`返回的是一个由数组支持的固定大小列表,该列表不允许添加或删除元素,因此某些操作(如`add`或`remove`)会抛出`UnsupportedOperationException`异常。为了得到一个可修改的列表,可以先使用`...

    Java编程中常见的坑

    使用`Arrays.asList()`方法将数组转换为集合时需要注意,这种方法返回的是一个固定大小的列表,并且不允许修改集合(比如添加或删除元素)。如果尝试修改该集合,将会抛出`UnsupportedOperationException`。 将集合...

    arrayliSt---listDemo

    list.addAll(Arrays.asList("Element3", "Element4")); ``` 3. **访问元素** ArrayList是有序的,可以通过索引来访问元素。`get(int index)`方法返回指定位置的元素,`set(int index, E element)`替换指定位置的...

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

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

    Java编程实现数组转成list及list转数组的方法

    因此,不能对其进行add、remove等操作。如果需要对其进行操作,可以使用List list = new ArrayList(Arrays.asList(userid));。 3. 使用for循环 String[] userid = {"aa","bb","cc"}; List&lt;String&gt; userList = new...

    list,set,map,数组间的相互转换

    数组可以直接转换为`List`,但是需要注意的是,通过`Arrays.asList()`方法创建的`List`实际上是一个不可变的列表,也就是说它不支持`add()`或`remove()`等操作。如果需要一个可修改的`List`,可以通过以下方式实现:...

    原来Java中有两个ArrayList

    这表明了Java类型系统对类型安全性的严格控制,不能简单地将一个类的实例赋值给另一个不兼容的类。 总结来说,Java中的两个ArrayList主要区别在于: 1. `java.util.ArrayList`是完整的列表实现,支持添加、删除和...

    java list,set,map,数组间的相互转换详解

    注意,这种方法创建的List是固定大小的,不能直接调用`add()`或`remove()`方法。 4. **数组转Set** 要将数组转换为Set,先将其转换为List,再构造一个新的HashSet: ```java int[] a = {1, 2, 3}; List...

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

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

    JavaList.rar_javalist

    List&lt;String&gt; myList = new ArrayList(Arrays.asList("Element1", "Element2", "Element3")); ``` 添加元素到`List`中,使用`add`方法: ```java myList.add("NewElement"); ``` 如果要在指定位置插入元素,使用`...

Global site tag (gtag.js) - Google Analytics