网站首页 > java教程 正文
Arrays#asList 坑麻了!
1. Arrays.asList 竟然会影响原数据,太离谱了。先是指定了一个数组,然后通过该数组构造出了一个 list,接着修改了第 0 个值,也对原数组的第一个值进行了修改。
2. 大家觉得这个 list 打印出来会是什么结果?563,也就是说不管是改这个 list 还是改这个 strength,都能改变数组的数据,这太离谱了。
3. 为什么会出现这种现象?先来看代码,点进去后再到这里,参数传下来后赋值到这里,而这直接就是它的数据源,即把入参作为了 ArrayList 的真实数据源,是同一个数据源,肯定会有影响。
4. 而且这个 asList 返回是 Arrays 里的一个内部类,如果想让它不是一个数据源该怎么解决?在外边包一个 ArrayList 就行。
5. 怎么包?就是这样,外边再加一个,用 ArrayList 包起来,然后运行,这样它们就不会相互影响了。
6. 这个 05 是修改的 list,结果应该是 523,因为这是原来的数据,结果确实是 523,看一下对不对?是的,523,这就是解决方案,在外层包一个 ArrayList 即可。
咱们下期视频再见,拜拜。
猜你喜欢
- 2024-10-05 List的用法和实例详解——Java进阶知识讲义系列(四)
- 2024-10-05 从Collection到List:Java集合转换的艺术
- 2024-10-05 小心!"数组"转"集合"的这几个隐藏"bug"
- 2024-10-05 JAVA脱水学习-java数组解析及常用操作
- 2024-10-05 《极简Java新手编程之道》10.2 List集合
- 2024-10-05 字符串拆分数组(字符串拆成列表)
- 2024-10-05 Java中的ArrayList与LinkedList(java linklist和arraylist的区别)
- 2024-10-05 小白学JAVA之——List接口的实现类——ArrayList
- 2024-10-05 「漫步计算机系统」之数据结构与算法(5):Array、List和Map等
- 2024-10-05 每日分享- java 编程中 ArrayList 集合怎么扩容
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)