作者:我想问问天
来源:https://juejin.im/post/5d10e52ee51d454f6f16ec11
引语:
问题分析:
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
// list.clear();
// list.remove("a");
// list.add("g");
}
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
private static final long serialVersionUID = -2764017481108945198L;
private final E[] a;
ArrayList(E[] array) {
a = Objects.requireNonNull(array);
}
public int size() {
return a.length;
}
public Object[] toArray() {
return a.clone();
}
"unchecked") (
public <T> T[] toArray(T[] a) {
int size = size();
if (a.length < size)
return Arrays.copyOf(this.a, size,
(Class<? extends T[]>) a.getClass());
System.arraycopy(this.a, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
// 后面省略了
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
public E remove(int index) {
throw new UnsupportedOperationException();
}
总结:
1. Arrays.asList()不要乱用,底层其实还是数组。
2. 如果使用了Arrays.asList()的话,最好不要使用其集合的操作方法。
3. List list = new ArrayList<>(Arrays.asList("a", "b", "c"))可以在外面这样包一层真正的ArrayList。
https://stackoverflow.com/questions/157944/create-arraylist-from-array
如果喜欢本篇文章,欢迎转发、点赞。关注订阅号「Web项目聚集地」,回复「全栈」即可获取 2019 年最新 Java、Python、前端学习视频资源。
推荐阅读
1. 经常用 HashMap ?这 6 个问题回答下 !
2. 数据库这么多锁,能锁住小姐姐吗?
3. 小白也能看懂,30 分钟搭建个人博客!
4. 快来薅当当的羊毛 !
5. 聊一聊 Java 泛型中的通配符
6. 数据库不使用外键的 9 个理由
在看
本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
版权声明:程序员胖胖胖虎阿 发表于 2022年9月21日 上午11:24。
转载请注明:为什么阿里巴巴开发手册明确说明 Arrays.asList() 不能使用其修改方法? | 胖虎的工具箱-编程导航
转载请注明:为什么阿里巴巴开发手册明确说明 Arrays.asList() 不能使用其修改方法? | 胖虎的工具箱-编程导航
相关文章
暂无评论...