Написал код, создав конструктор класса Node и добавив поле index и iterator. Программа превосходно работает и компилируется, но валидатору фиолетово решение не принимает, хотя требованиям полностью соответствует. И вот в чём вопрос, зачем верное решение(по мнению валидатора и разработчиков) создаёт индекс внутри метода? Во-первых это довольно примитивно с точки зрения кода и неиспользования конструктора внутреннего класса. Во-вторых при создании других методов я всегда могу воспользоваться полем index, которое присутствует у каждого объекта и мне не понадобится писать каждый раз код заново. Но вместо этого разработчики заставляют меня намеренно написать код по-простому снизив его функционал и эффективность заведомо, добавив индекс внутрь метода add.
package com.javarush.task.pro.task13.task1314;
public class StringLinkedList {
private Node first = new Node();
private Node last = new Node();
public void add(String value) {
if (first.next == null) {
Node node = new Node();
node.value = value;
first.next = node;
}
if (last.prev == null) {
last.prev = first.next;
return;
}
Node node = new Node();
node.value = value;
Node lastNode = last.prev;
lastNode.next = node;
node.prev = lastNode;
last.prev = node;
}
public String get(int index) {
Node cur = first.next;
while(cur!= null){
if (cur.index == index){
return cur.value;
}
cur = cur.next;
}
return null;
}
public static class Node {
private Node prev;
private String value;
private Node next;
private static int iterator = -3;
private int index;
public Node () {
this.index = ++iterator;
}
}
}