Если вам нужна только правая часть LinkedList
, у вас должно быть следующее:
public static <T> LinkedList<T> removeUntil(LinkedList<T> list, int index) {
for (int i = 0; i < index; i++) {
list.removeFirst();
}
return list;
}
USECASE
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>(Arrays.asList(new Integer[] {1, 3, 5, 6, 9}));
System.out.format("Input : %s%n", list);
list = removeUntil(list, 3);
System.out.format("Output: %s%n", list);
}
Использование прецедента
Input : [1, 3, 5, 6, 9]
Output: [6, 9]
Если вы хотите зарезервировать левую часть LinkedList
, у вас должно быть следующее:
public static <T> LinkedList<T>[] split(LinkedList<T> list, int index) {
LinkedList<T> left = new LinkedList<>();
for (int i = 0; i < index; i++) {
T t = list.removeFirst();
left.addLast(t);
}
return new LinkedList[] {
left, list
};
}
USECASE
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>(Arrays.asList(new Integer[] {1, 3, 5, 6, 9}));
System.out.format("Input : %s%n", list);
LinkedList[] alist = split(list, 3);
System.out.format("Output: %s, %s%n", alist[0], alist[1]);
}
Usecase output
Input : [1, 3, 5, 6, 9]
Output: [1, 3, 5], [6, 9]
Справка: