add与addAll

来源:互联网 发布:吉川英治三国志 知乎 编辑:程序博客网 时间:2024/05/16 18:02

今天改个东西,发现了一个很有意思的玩意

一个list(第一层)没有指定类型的

里面两个list(list1与list2,都指定了类型)

这样的话,使用addAll的话

外面的list里面结构是这样的

[ [ , , , , ],[ , , , , ,  ] ](注意,里面是有两个[ ]的)

但是呢,对于list2需要加入一个数据

list2我采取了add操作

其他不动,那么list1与list2同样是addAll进去的

出现了

[ [ , , , , , , ] , , , , , , , ,](我靠,少了一组中括号了!!!)

然后,然后,然后

list1使用addAll处理,list2采取add处理的时候

神奇的一幕出现了

[ [ , , , , ],[ , , , , ,  ] ](注意,里面是有两个[ ]的)

那么,这是为什么呢?????

对于list2,原本是调用其它方法返回的一个List,然后直接addAll到list中,默认会将方法返回的List作为一个整体添加到list2里面去,此时的list2的结构式是[ [ , , , , ,] ]

注意,是整体

然后呢,我add了一个进去,变成[  , , , , , , ],不知道为什么结构发生了变化

之后再将list2添加到list中去的时候

addAll的话变成了[ [ , , , , , , ] , , , , , , , ,]

add的话才是想要的[ [ , , , , ],[ , , , , ,  ] ]结构


我次奥,感觉好神奇的东西

其实,我想说的是

对于两层list的操作,两层的addAll与add操作

先addAll后add,先add后addAll,或者都add以及都addAll,那么,那么,list的结构会有很大的不同,很有意思的东西哦!!!!

0 0
原创粉丝点击