#java #list #tostring
Вопрос:
В настоящее время я создаю программу для печати связанного списка случайных целых чисел с помощью метода toString (). Однако, как бы то ни было, моя программа не содержит ошибок, но ничего не печатает. У меня такое чувство, что ошибка может быть связана с оператором val != null в toString (), но я очень новичок в toString() и связанных списках, поэтому не могу сказать наверняка. Почему моя программа не выводит связанный список?
import java.util.Random;
import java.util.*;
public class IntList {
private class Node {
int value;
Node next;
}
private Node head;
public IntList(int n) {
LinkedList<Integer> list = new LinkedList<Integer>();
Random rand = new Random();
for (int i = 0; i < n; i ) {
list.add(rand.nextInt(n));
}
}
public String toString() {
String result = "";
for(IntList.Node val = head; val != null; val = val.next) {
result = val.value;
}
return resu<
}
public static void main(String[] args) {
IntList list = new IntList(6);
System.out.println(list);
}
}
Если ошибка где-то в другом месте, а не в toString (), пожалуйста, дайте мне знать, и я постараюсь ее найти!
Ответ №1:
Вы не добавляете узел в свой список элементов в своем конструкторе. Ваш заголовок инициализирован нулем, поэтому печатать нечего.
Расширьте свой конструктор чем-то подобным.
public IntList(int n) {
LinkedList<Integer> list = new LinkedList<Integer>();
Random rand = new Random();
for (int i = 0; i < n; i ) {
list.add(rand.nextInt(n));
}
//Init head
this.head = new Node(list.get(0),null); //Add constructor to the Node
// Append all the elements from the list.
for(int i : list){
Node lastNode = head;
while(lastNode.getNext() != null){
lastNode = lastNode.getNext();
}
lastNode.setNext( new Node(i,null));
}
}