Archit Raj Ответов: 1

Как мы создаем узлы двойного связанного списка для строки, разделенной запятой?


Я работаю над проектом, и он требует, чтобы я сгенерировал toString() в интерфейсе двойного связанного списка. Мы могли бы использовать StringBuilder и метод добавления, но я хотел сделать его немного базовым, просто возвращая их без какого-либо встроенного метода java.

Что я уже пробовал:

@Override
	public String toString()
	{
		String result = "";
		DoubleLinkedNode currentNode = this.firstNode;
		while(currentNode != null) {
			System.out.print(current.data + ",  "); 
			result += currentNode.data.toString() +" , ";
			currentNode = currentNode.next;
		}
		String now = " .";
		
		
		return result + now; // this is returned in case bag is empty.
		
		
	}




Ожидаемый :
"a", "q", "%", "asdf"

Выход:
asdf,  123,  q,  a,  asdf , 123 , q , a ,  .

Richard MacCutchan

Похоже, что ваш список не содержит того, что вы думаете.

Richard Deeming

Ваш код, кажется, путается между current и currentNode- Это опечатка в вашем вопросе?

Archit Raj

Да, возможно, это опечатка. Оба такие же.

Richard Deeming

Помимо 123 против"%", ваш вывод кажется двойной копией ожидаемого списка в обратном порядке.

Я подозреваю, что вы получаете две копии из-за System.out.print позвоните в полицию. toString метод. Удалите это, и вы должны перейти к одной копии: asdf , 123 , q , a , .

Теперь вам просто нужно понять, почему ваш список находится в обратном порядке, и почему вы получаете 123 вместо "%". :)

1 Ответов

Рейтинг:
1

CPallini

Цитата:
Они сказали, что мы можем использовать StringBuilder и метод добавления, но я хотел сделать его немного базовым, просто вернув их без какого-либо встроенного метода java
Однако они правы.
Использование StringBuilder сделает ваш код более понятным, эффективным и, возможно, правильным.
Смотрите, например: string - когда использовать StringBuilder в Java - переполнение стека[^].