Java链表中的自编程单链表
Java Self-Programmed Singly-Linked-List in Linked-List
至少对我来说,我有一个为大学做的棘手练习。任务是用各种方法编写一个单链表。到目前为止很容易,但挑战在于将这些单链表存储在链表中。在下面你会看到我的单链表的实现,它实际上运行得很顺利:
public class Liste {
ListenElement first;
ListenElement last;
ListenElement current;
int count;
public Liste() {
first = null;
last = null;
current = null;
count = 0;
}
// Methods...
单链表由以下实现的列表元素组成:
public class ListenElement {
String content;
ListenElement next;
public ListenElement(String content, ListenElement next)
{
this.content = content;
this.next = next;
}
//Methods...
这是我的问题:
LinkedList<Liste> zeilen = new LinkedList<>();
Liste zeile1 = new Liste();
Liste zeile2 = new Liste();
zeile1.addBehind("Hello");
zeile1.addBehind("World");
zeile2.addBehind("Hello");
zeile2.addBehind("World");
zeilen.add(zeile1);
zeilen.add(zeile2);
System.out.print(zeilen.get(1));
//Printed: Listen.Liste@4aa298b73 instead of Hello World.
提前感谢您的帮助!
System.out.print(zeilen.get(1));
//Printed: Listen.Liste@4aa298b73 instead of Hello World.
这是默认 Object#toString
的输出。如果您想要 Liste
class 的不同输出,您需要覆盖 toString
以提供不同的输出。
例如:如果您想要 Liste#toString
到 return 逗号分隔的 toString
内容列表:
@Override
public String toString() {
StringBuffer sb = new StringBuffer(10 * this.count); // Complete guess
ListenElement el = this.first;
while (el != null) {
sb.append(el.content.toString());
el = el.next;
if (el != null) {
sb.append(", ");
}
}
return sb.toString();
}
(我根据您显示的代码假设您的列表 class 是如何工作的...)
至少对我来说,我有一个为大学做的棘手练习。任务是用各种方法编写一个单链表。到目前为止很容易,但挑战在于将这些单链表存储在链表中。在下面你会看到我的单链表的实现,它实际上运行得很顺利:
public class Liste {
ListenElement first;
ListenElement last;
ListenElement current;
int count;
public Liste() {
first = null;
last = null;
current = null;
count = 0;
}
// Methods...
单链表由以下实现的列表元素组成:
public class ListenElement {
String content;
ListenElement next;
public ListenElement(String content, ListenElement next)
{
this.content = content;
this.next = next;
}
//Methods...
这是我的问题:
LinkedList<Liste> zeilen = new LinkedList<>();
Liste zeile1 = new Liste();
Liste zeile2 = new Liste();
zeile1.addBehind("Hello");
zeile1.addBehind("World");
zeile2.addBehind("Hello");
zeile2.addBehind("World");
zeilen.add(zeile1);
zeilen.add(zeile2);
System.out.print(zeilen.get(1));
//Printed: Listen.Liste@4aa298b73 instead of Hello World.
提前感谢您的帮助!
System.out.print(zeilen.get(1));
//Printed: Listen.Liste@4aa298b73 instead of Hello World.
这是默认 Object#toString
的输出。如果您想要 Liste
class 的不同输出,您需要覆盖 toString
以提供不同的输出。
例如:如果您想要 Liste#toString
到 return 逗号分隔的 toString
内容列表:
@Override
public String toString() {
StringBuffer sb = new StringBuffer(10 * this.count); // Complete guess
ListenElement el = this.first;
while (el != null) {
sb.append(el.content.toString());
el = el.next;
if (el != null) {
sb.append(", ");
}
}
return sb.toString();
}
(我根据您显示的代码假设您的列表 class 是如何工作的...)