throw UnsupportedOperationException
package org.usc.action;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
String[] str={"张三","李四","王五","宋六","赵七","朱八","何九","田十"};
List<String> list=Arrays.asList(str);//将数组转换为list集合
if(list.contains("张三")){//加入集合中包含这个元素
/*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。
*/
//这个时候我们直接移除会报错,所以我们要转换为Arraylist
//list.remove("张三");
List<String> arrayList=new ArrayList<String>(list);//转换为ArrayLsit调用相关的remove方法
arrayList.remove("张三");
for(String str1:arrayList ){
System.out.print(str1+",");
}
}
}
} public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
list1.add("C"); List<String> list2 = new ArrayList<String>();
list2.add("C");
list2.add("B");
list2.add("D");
// 并集
list1.addAll(list2);
// 去重复并集
list2.removeAll(list1);
list1.addAll(list2);
// 交集
list1.retainAll(list2);
// 差集
list1.removeAll(list2);
}
throw UnsupportedOperationException的更多相关文章
- java 异常java.lang.UnsupportedOperationException
在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常: 常见集合如下: private List<VacationC ...
- ArrayList Iterator remove java.lang.UnsupportedOperationException
在使用Arrays.asList()后调用add,remove这些method时出现 java.lang.UnsupportedOperationException异常.这是由于Arrays.asLi ...
- java 异常 throw
throw UnsupportedOperationException(); //没有支持的操作NoSuchElementException(); //没有这样的元素
- UnsupportedOperationException
java不支持该功能,多见于, Arrays.asList() ,然后使用remove和add方法. 因为asarraylist的集合是一个转化来的集合,它的大小是固定的.不能进行长度修改. ...
- java.lang.UnsupportedOperationException解决方法!!!
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下. 代码块 ...
- Arrays.asList引起的java.lang.UnsupportedOperationException解决方法
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下. 代码块 ...
- Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常
String[] queryNames = request.getParameterValues("queryName"); List<String> queryNam ...
- java.lang.UnsupportedOperationException at java.util.AbstractList
常常使用Arrays.asLisvt()后调用add,remove这些method时出现 Java.lang.UnsupportedOperationException异常.这是由于: Arrays. ...
- HashMap与TreeMap源码分析
1. 引言 在红黑树--算法导论(15)中学习了红黑树的原理.本来打算自己来试着实现一下,然而在看了JDK(1.8.0)TreeMap的源码后恍然发现原来它就是利用红黑树实现的(很惭愧学了Ja ...
随机推荐
- A20 Android 编译
cd lichee ./build.sh -p sun7i_android -b wing-sc3075gs cd ../android4.2 . build/envsetup.sh lunch wi ...
- BZOJ 2818 Gcd 线性欧拉
题意:链接 方法:线性欧拉 解析: 首先列一下表达式 gcd(x,y)=z(z是素数而且x,y<=n). 然后我们能够得到什么呢? gcd(x/z,y/z)=1; 最好还是令y>=x 则能 ...
- 服务器启动时Webapp的web.xml中配置的加载顺序(转载)
一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...
- CI框架常识
1.有两种方法来加载自定义配置文件(如enums.php): <?php if (! defined('BASEPATH')) exit('No direct script access all ...
- 2016/07/07 PHP的线程安全与非线程安全版本的区别
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...
- EasyRTMP实现对接海康、大华等IPCamera SDK进行RTMP推送直播功能
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603 Demo项目介绍 EasyRTMP Demo代码下载地址https://github.c ...
- Google Guava之Optional优雅的使用null
为什么使用optional 使用Optional<T>除了简化粗鲁的if(null == object).降低函数的复杂度.增加可读性之外,它是一种傻瓜式的防护,Optional<T ...
- 有返回值的Bookmark
首先代码创建Activity: public sealed class WaitForResponse<TResult>:NativeActivity<TResult> { p ...
- sap人员编制
[转]中小SAP项目中的人员编制 转自http://w39.itpub.net/post/24/398817 对于SAP项目来说,常有人把项目所需的人员说的很多--每个模块一个内部顾问和一个开发的 ...
- 常用git命令和工具
0. ln -s src_dir //一个参数即可在当前目录下生成一个软链接 1.git command --clone/push a branch git clone <url ...