做什么的时候
// creating list1, adding items
LinkedList slist = new LinkedList();
slist = subList(list1, 2,5);
Run Code Online (Sandbox Code Playgroud)
我将有一个第二个对象("list"元素2到5的"副本")由subList返回并包含在slist中.但是,出于性能/内存的原因,我想有一些东西只给我一个list1的"视图",而不创建新对象而不分配新内存.
Thi*_*ilo 14
我认为List#subList完全符合您的要求:
返回指定fromIndex(包含)和toIndex(独占)之间此列表部分的视图.(如果fromIndex和toIndex相等,则返回的列表为空.)返回的列表由此列表支持,因此返回列表中的非结构更改将反映在此列表中,反之亦然.
List slist = list1.subList(2, 5);
Run Code Online (Sandbox Code Playgroud)
当然,需要创建一个新的(包装器)对象,但是列表的数据结构和所有元素都将被重用.包装器只跟踪开始和结束指针.