刷题的时候发现了ArrayList的remove操作居然比subList耗时短,之前认为remove有数组元素前移的操作,应该会耗时较长.然而事实并非如此.于是乎查看源码
remove内部有复制数组的操作 所以占用内存大
而subList新建内部类对象 然后把指针指向父集合的元素位置,并没有申请新的内存 所以占用空间小,但是新建对象估计耗时比系统级的数组复制要长
ps:因此,subList的值会依赖父集合的值,如果对原集合的值进行变更,subList中对应的元素值也会发生改变
以上是个人见解及学习过程,如有不正确的地方,欢迎大佬指正