/* ------------------------------------------------------- *
* Inner classes *
* ------------------------------------------------------- */
/**
* The node used by StringList.
*/
private class StrNode {
String data;
StrNode next;
}
/* ------------------------------------------------------- *
* Instance variables *
* ------------------------------------------------------- */
private StrNode head; // the head of the singly-linked list.
/* ------------------------------------------------------- *
* Instance methods *
* ------------------------------------------------------- */
/**
* No-argument constructor.
*/
public StringList() {
head = null;
}
/**
* Adds an item to the start of the list.
*
* @param s the item to add
*/
public void prepend(String s) {
var newNode = new StrNode();
// TODO: Adds an item to the start of the list.
if(head == null) {
head = newNode;
}
else {
newNode.next = head.next;
head.next = newNode;
}
}
/**
* Adds an item to the end of the list.
*
* @param s the item to add
*/
public void append(String s) {
// TODO: Adds an item to the end of the list.
}
/**
* Inserts an item after the first instance of a key if the key exists.
*
* @param s the item to insert
* @param key the item in the list to insert after
* @return whether the insertion was successful
*/
public boolean insertAfter(String s, String key) {
// TODO: Inserts an item after the first instance of a key if the key exists.
return false;
}
/**
* Deletes the first instance of an item from the list.
*
* @param key the value of the item to delete from the list.
* @return whether the deletion was successful.
*/
public boolean delete(String key) {
// TODO: Deletes the first instance of an item from the list.
return false;
}
/**
* Returns the value of the nth item in the list.
*
* @param n the zero-based index of the item to return
* @return the value of the nth item
*/
public String get(int n) {
// TODO: Returns the value of the nth item in the list.
// Note: if n is out of bounds, raise an IndexOutOfBoundsException.
return null;
}
/**
* Returns the number of items in the list.
*
* @return the number of items in the list
*/
public int length() {
// TODO: Returns the number of items in the list.
int length = 0;
StrNode current = head;
while(current != null) {
length++;
current = current.next;
}
return length;
}
/**
* Returns a string of all the items in the list separated by a space.
*
* The last item will have a space after it too.
*
* @return list of the list's values
*/
@Override
public String toString() {
// TODO: Returns a string of all the items in the list separated by a space.
String result = "{";
StrNode current = this.head;
while(current != null) {
result += current.data + " ";
current = current.next;
}
return result + "}";
}
StringList s = new StringList();
s.prepend("one");
s.prepend("two");
s.prepend("three");
System.out.println(s);
}
}
``
错误在prepend(strings)
方法中。仔细看看--您从不使用s
,也就是说,您传递给此方法的字符串从不存储。您只需添加newnode.data=s;
作为第二行。但是,还有第二个错误,因为strNode
对象没有正确链接。
解决方案
public void prepend(String s) {
var newNode = new StrNode();
newNode.data = s;
if (head == null) {
head = newNode;
} else {
// First, we set the current head as the successor of the new newNode
newNode.next = head;
// Then, we set the new newNode as head (as we prepend)
head = newNode;
}
}
则输出如下所示:
{three two one }
@Override
public String toString() {
StringBuilder result = new StringBuilder("{");
StrNode current = this.head;
while (current != null) {
result.append(current.data).append(" ");
current = current.next;
}
result.setLength(result.length() - 1);
return result + "}";
}
问题内容: 好的,我正在尝试学习如何打印出链表。我有需要用于列表的所有方法,但是我不知道如何显示节点的值。现在,我的main方法中什么都没有,因为在尝试在main方法中调用非静态方法时,我不断出错。我有一个toString方法,用于显示列表的内容。我将如何调用此toString以显示每个节点的值?任何建议将不胜感激。 这是节点类: 这是LinkedList类,其中包含操作列表的main和方法: 问
描述 (Description) prepend( content )方法将内容添加到每个匹配元素的内部。 将它与append( content )方法进行比较。 语法 (Syntax) 以下是使用此方法的简单语法 - <i>selector</i>.prepend( content ) 参数 (Parameters) 以下是此方法使用的所有参数的说明 - content - 要在每个目标之后插
问题内容: 我有以下代码: 但是“淡入”功能不起作用…我希望内容被预先放置并淡入“ …我该怎么做? 提前致谢! 问题答案: 假设是HTML,请尝试以下操作: 当您这样做时: 您真正淡入的东西是初始选择器(位于最前面的列表)的结果,该选择器已经可见。
我需要为链表队列实现一个toString()递归方法。我知道我的toString方法在我上周做的一个链表实现中工作得很好,所以我在处理它的队列方面出了问题。 我的QueueList的toString方法: 以及我的构造函数,例如QueueList: 我试图用这个测试看看里面发生了什么: 与输出 我意识到这是因为我说的是前面的在方法的递归部分,但即使我将其更改为,我的输出是 这可能与我的排队和退队方
我非常精通编码,但偶尔我会遇到似乎做基本相同事情的代码。我在这里的主要问题是,为什么你会使用 .() 而不是 ? 我一直在寻找,似乎找不到两者之间区别的明确定义,以及何时使用它们,何时不使用它们。 一个比另一个有什么好处,为什么我要使用一个而不是另一个??有人能给我解释一下吗?
本文向大家介绍Java toString()方法。,包括了Java toString()方法。的使用技巧和注意事项,需要的朋友参考一下 String类的toString()方法将自身返回为字符串。 示例 输出结果