История изменений
Исправление MOPKOBKA, (текущая версия) :
public class Main {
public static class Element {
protected int value;
Element(int value) {
this.value = value;
}
List<Element> asHeadAndTail(List<Element> parent) {
return parent.subList(parent.indexOf(this), parent.size());
}
}
public static void main(String[] args) {
List<Element> list = new ArrayList<>();
list.add(new Element(10));
list.add(new Element(20));
list.add(new Element(30));
list.add(new Element(40));
list.add(new Element(50));
var head = list.get(3).asHeadAndTail(list);
head.add(0, new Element(35));
head.add(2, new Element(45));
for (var item : list) {
System.out.println(item.value);
/*
10
20
30
35 Если нужно поведение не добавляющие здесь 35, то это уже не список с элементами должен быть, а ячейки как в лиспе, если не нужно изменять оригинал то нужно сделать копию в методе.
40
45
50
*/
}
}
}
Исправление MOPKOBKA, :
public class Main {
public static class Element {
protected int value;
Element(int value) {
this.value = value;
}
List<Element> asHeadAndTail(List<Element> parent) {
return parent.subList(parent.indexOf(this), parent.size());
}
}
public static void main(String[] args) {
List<Element> list = new ArrayList<>();
list.add(new Element(10));
list.add(new Element(20));
list.add(new Element(30));
list.add(new Element(40));
list.add(new Element(50));
var head = list.get(3).asHeadAndTail(list);
head.add(0, new Element(35));
head.add(2, new Element(45));
for (var item : list) {
System.out.println(item.value);
/*
10
20
30
35 Если нужно поведение не добавляющие здесь 35, то это уже не список с элементами должен быть, а ячейки как в лиспе
40
45
50
*/
}
}
}
Исправление MOPKOBKA, :
public class Main {
public static class Element {
protected int value;
Element(int value) {
this.value = value;
}
List<Element> asHeadAndTail(List<Element> parent) {
return parent.subList(parent.indexOf(this), parent.size());
}
}
public static void main(String[] args) {
List<Element> list = new ArrayList<>();
list.add(new Element(10));
list.add(new Element(20));
list.add(new Element(30));
list.add(new Element(40));
list.add(new Element(50));
var head = list.get(3).asHeadAndTail(list);
head.add(0, new Element(35));
head.add(2, new Element(45));
for (var item : list) {
System.out.println(item.value);
/*
10
20
30
35
40
45
50
*/
}
}
}
Исправление MOPKOBKA, :
public class Main {
public static class Element {
protected int value;
Element(int value) {
this.value = value;
}
List<Element> asHeadAndTail(List<Element> parent) {
return parent.subList(parent.indexOf(this), parent.size());
}
}
public static void main(String[] args) {
List<Element> list = new ArrayList<>();
list.add(new Element(10));
list.add(new Element(20));
list.add(new Element(30));
list.add(new Element(40));
list.add(new Element(50));
var head = list.get(3).asHeadAndTail(list);
head.add(0, new Element(35));
head.add(2, new Element(45));
for (var item : list) {
System.out.println(item.value);
}
}
}
Исходная версия MOPKOBKA, :
public class Main {
public static class Element {
protected List<Element> parent;
protected int value;
Element(List<Element> parent, int value) {
this.parent = parent;
this.value = value;
}
List<Element> asHeadAndTail() {
return parent.subList(parent.indexOf(this), parent.size());
}
}
public static void main(String[] args) {
List<Element> list = new ArrayList<>();
list.add(new Element(list, 10));
list.add(new Element(list, 20));
list.add(new Element(list, 30));
list.add(new Element(list, 40));
list.add(new Element(list, 50));
var head = list.get(3).asHeadAndTail();
head.add(0, new Element(head, 35));
head.add(2, new Element(head, 45));
for (var item : list) {
System.out.println(item.value);
}
}
}