List.subList是否保留对原始列表的引用?

sta*_*wer 1 java

如果我有一个变量

LinkedList list
Run Code Online (Sandbox Code Playgroud)

并反复执行以下操作以提取"列表"的尾部

// Some operation that adds elements to 'list'
// max_size = some constant
list = (LinkedList) list.subList(list.size()-max_size, list.size());
Run Code Online (Sandbox Code Playgroud)

我最终会引用很多对"上一个"列表的引用吗?

所以基本上我在这里要做的就是删除列表的初始段.

有没有更好的方法来删除LinkedList的初始段?我认为LinkedList的数据结构应该允许线性时间(线性的初始段的大小将被删除)操作.

Per*_*ion 5

当其他所有方法都失败时,请咨询Javadoc:

返回指定fromIndex(包含)和toIndex(独占)之间此列表部分的视图.(如果fromIndex和toIndex相等,则返回的列表为空.)返回的列表由此列表支持,因此返回列表中的非结构更改将反映在此列表中,反之亦然.返回的列表支持此列表支持的所有可选列表操作.

如果您需要从列表前面删除元素,那么您可以使用removeFirst,并根据需要多次调用它.