当做类似的事情时

// creating list1, adding items
LinkedList slist = new LinkedList();
slist = subList(list1, 2,5);

我将有第二个对象(“列表”的元素2到5的“副本”),由subList返回并包含在slist中。
但是,出于性能/内存的原因,我想拥有一些仅能给我list1的“ View ”,而无需创建新对象且无需分配新内存的东西。

最佳答案

我认为List#subList确实可以满足您的要求:


List slist = list1.subList(2, 5);

当然,需要创建一个新的(包装器)对象,但是列表的数据结构以及所有元素都将被重用。包装器仅跟踪开始和结束指针。

10-07 15:59