专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java:Arrays的asList方法,竟然会影响原数据!

temp10 2024-10-05 01:03:10 java教程 10 ℃ 0 评论

Arrays#asList 坑麻了!

1. Arrays.asList 竟然会影响原数据,太离谱了。先是指定了一个数组,然后通过该数组构造出了一个 list,接着修改了第 0 个值,也对原数组的第一个值进行了修改。

Java:Arrays的asList方法,竟然会影响原数据!

2. 大家觉得这个 list 打印出来会是什么结果?563,也就是说不管是改这个 list 还是改这个 strength,都能改变数组的数据,这太离谱了。

3. 为什么会出现这种现象?先来看代码,点进去后再到这里,参数传下来后赋值到这里,而这直接就是它的数据源,即把入参作为了 ArrayList 的真实数据源,是同一个数据源,肯定会有影响。

4. 而且这个 asList 返回是 Arrays 里的一个内部类,如果想让它不是一个数据源该怎么解决?在外边包一个 ArrayList 就行。

5. 怎么包?就是这样,外边再加一个,用 ArrayList 包起来,然后运行,这样它们就不会相互影响了。

6. 这个 05 是修改的 list,结果应该是 523,因为这是原来的数据,结果确实是 523,看一下对不对?是的,523,这就是解决方案,在外层包一个 ArrayList 即可。

咱们下期视频再见,拜拜。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表