当前位置:网站首页>数组转集合list
数组转集合list
2022-08-08 06:23:00 【永远的攀登者】
1.数组转集合list–目的从一个固定不变的数组变成一个长度可变的集合
String[] strs = {"1","5","3"};
List<String> strLits = Arrays.asList(strs);
strLits.add("9");
目的:想拥有一个长度可变的集合,可以继续添加数据,上面的代码看着没有语法的问题但是执行报(UnsupportedOperationException)错,中文意思是不支持操作异常。
原因:asList方法内容是new ArrayList<>(a) 返回了ArrayList对象,但是这个对象是Arrays类的一个内部类并继承了AbstractList,ArrayList内部类中有几个常见的对list属性获取和编列、排序方法,没有集合的添加删除等改变集合长度的方法。,ArrayList内部类继承的抽象对象AbstractList有add方法remove方法(直接抛出UnsupportedOperationException),这就是为什么我们直接使用add方法报错的原因源码如下:
// as 方法
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
// ArrayList 类
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
//AbstractList类的add和remove方法
public boolean add(E e) {
add(size(), e);
return true;
}
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
public E remove(int index) {
throw new UnsupportedOperationException();
}
解决办法 :new ArrayList
//asList的返回的ArrayList 是一个内部类对象并不是java.util.ArrayList
List<String> strLits = new ArrayList(Arrays.asList(strs));
知识扩展:
1.removeIf(Predicate<? super E> filter)
删除满足给定谓词的此集合的所有元素。
2.set(int index, E element)
用指定的元素替换此列表中指定位置的元素。
3.toArray()
以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
4.trimToSize()
修改这个 ArrayList实例的容量是列表的当前大小。
边栏推荐
- es6模块+异步promise+async/await
- 黑苹果安装
- Write carousel pictures with native js (and realize manual and automatic switching of pictures)
- AttributeError: ‘GridSearchCV‘ object has no attribute ‘grid_scores_‘
- 化工行业现状分析:聚烯烃市场消费量近2亿吨
- 2022秋春招/提前批面经分享总结(字节、腾讯、阿里)
- 使用XGboost进行分类,判断该患者是否患有糖尿病
- 市场调研:2022年金属家具行业深度分析与发展前景报告
- 二. Redis 数据类型
- vim 快捷键大全和插件大全
猜你喜欢

2. TF2 FAQ

Analysis of the status quo of the chemical industry: the polyolefin market consumption is nearly 200 million tons

Scrapy_Redis distributed processing

5个网络问题,了解网络协议栈的哪些不为人知的八股文(来波千人福利)

demo:数组方法-商品查询

Neo4j服务配置

【熬夜整理近百份大厂面经】2022校招提前批面经总结分享(腾讯、字节、阿里、百度、京东等招聘信息+必考点+简历书写)

Four, TF2.0 tensor in mathematics

命令提示符adb shell的具体配置和使用方法

图像融合简介
随机推荐
from sklearn import cross_validation 报错的解决方法
Tensorboard 对训练性能影响
word写论文中的一些方法
冰箱压缩机市场现状研究分析与发展前景预测
NULL和nullptr的区别
ax.patches 表示什么?
2022年中国儿童食品市场规模与发展趋势
vim 快捷键大全和插件大全
[WUSTCTF2020]朴实无华1
2021年度总结
[极客大挑战 2019]RCE ME 1
[BSidesCF 2020]Had a bad day1
一个五位数,判断它是不是回文数
总结:numpy常用方法
大恒工业相机搭建双目相机(软件)
终于搞懂了 super(XXXX, self).__init__()的作用是啥了
mycmsms靶机wp
3.SQL底层执行原理
YoloV4训练自己的数据集(五)
Shell(一)