Создайте "представление" списка Java

Выполняя что-то вроде

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

У меня будет второй объект ( "копия" элементов 2-5 "списка" ), возвращаемая сублистом и содержащаяся в slist. Тем не менее, я хотел бы иметь что-то, что только дает мне "представление" списка1, не создавая новый объект и не выделяя новую память по причинам производительности/памяти.

1 ответ

Я думаю, Список # subList делает именно то, что вы хотите:

Возвращает представление части этого списка между указанным fromIndex, inclusive и toIndex, исключительным. (Если fromIndex и toIndex равны, возвращаемый список пуст.) Возвращенный список поддерживается этим списком, поэтому неструктурные изменения в возвращенном списке отражаются в этом списке и наоборот.

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

Конечно, нужно создать новый (обертковый) объект, но структура данных для списка и все элементы будут повторно использоваться. Обертка просто отслеживает начальные и конечные указатели.

licensed under cc by-sa 3.0 with attribution.