笔记(不定时更新)
来源:互联网 发布:喜马拉雅 for mac版 编辑:程序博客网 时间:2024/04/28 06:24
1、java.lang.UnsupportedOperationException
今天开发时遇到了这样一个异常java.lang.UnsupportedOperationException
引起异常代码:
1.String[] strs = new String[]{"a","b"};
2. List<String> strList = Arrays.asList(strs);
3. strList.add("c");
在第三行抛出的异常
经分析java源代码Arrys.asList();方法返回的不是平常熟悉的java.util.ArrayList类的对象。而是Arrays类的内部类的对象,而Arrays类里的内部类ArrayList没有实现AbstractList类的add,removeAll等方法,导致抛此异常! strList.add("c");这行代码调用的add方法实际上是这样的:
public boolean add(E e) {
add(size(), e);
return true;
}
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
解决方法:
String[] strs = new String[]{"a","b"};
List<String> strList = new ArrayList<String>(Arrays.asList(strs));
strList.add("c");
2、List<String> 去重复(不一定是String ,其他对象也可以,不过好像要重写equals方法,有兴趣的可以尝试一下)
普遍的方法是遍历取出来,放进去前判断是否存在,存在则不添加,不存在则添加。
这里介绍一种快捷的办法,就是利用set<String> 因为set要求里面的内容是不能重复的,即利用set的特性进行过滤一下
List<String> dictList = new ArrayList<String>();
dictList.add("123");
dictList.add("456");
dictList.add("123");
Set<String> dictSet = new HashSet<String>(dictList);
dictList = new ArrayList<String>(dictSet);
- 笔记(不定时更新)
- 前端笔记(不定时更新)
- 开发笔记(不定时更新)
- 日常笔记(不定时更新)
- Head First 设计模式学习笔记(不定时更新)
- 笔记---多页面控制 (不定时更新)
- 一篇作为日常笔记的文章(不定时更新)
- 资料(不定时更新)
- oc学习笔记(不定时更新)
- HTML学习笔记(不定时更新)
- Java学习笔记-不定时更新
- 源码下载地址(不定时更新)
- 千奇百怪问题集(不定时更新)
- vim插件集合(不定时更新)
- 算法小知识 (不定时更新)
- ACM 注意事项 (不定时更新)
- linux系统管理常用命令(不定时更新)
- xcode小技巧(不定时更新)
- Java 执行Linux 命令时不支持正则表达式
- C++ RTTI
- Android高手进阶教程(五)之----Android 中LayoutInflater的使用!
- jquey request
- AudioToolbox之AudioQueue.h(四)Manipulating Audio Queue Properties
- 笔记(不定时更新)
- web开发中基于ie浏览器的常用控件
- 如何使用W7100A实现DHCP客户端?
- 网页自动刷新的三种方法
- Android高手进阶教程(六)之----Android 中MenuInflater的使用(布局定义菜单)!
- Maven常用命令和标准的Maven项目结构
- 选择排序
- ListView中Item鼠标右键操作
- Android高手进阶教程(七)之----Android 中Preferences的使用!