今天改个东西,发现了一个很有意思的玩意
一个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的结构会有很大的不同,很有意思的东西哦!!!!