我是一个包含" a b c d e"的数组。 然后我使用反向方法将数组中的元素交换为" e d c b a"
我尝试使用此toString方法打印出数组中包含的项目:
public String toString()
{
String s = "";
if(isEmpty())
{
s = "List is empty";
}
for(int i = 0; i < numItems; i++)
{
s += items[i] + " ";
}//end for
return s;
}//end of toString
字符串s出现了&#34; null e d c b&#34;
我不知道为什么,但我认为必须将s初始化为&#34;&#34;。
如果有帮助,这是我的反向方法:
public void reverseList()
{
for(int i = 0; i < items.length/2; i++)
{
Object temp = items[i];
items[i] = items[items.length-i-1];
items[items.length-i-1] = temp;
}//end for
System.out.println("List reversed");
}//end of reverseList
这是数组的add方法:
public void add(int index, Object item)
throws ListIndexOutOfBoundsException
{
if (numItems > items.length)//fixes implementaion error
{
throw new ListException("ListException on add");
} // end if
if (index >= 0 && index <= numItems)
{
// make room for new element by shifting all items at
// positions >= index toward the end of the
// list (no shift if index == numItems+1)
for (int pos = numItems-1; pos >= index; pos--)
{
items[pos+1] = items[pos];
} // end for
// insert new item
items[index] = item;
numItems++;
System.out.println("Item " + item + " inserted into position " + index + " in the list.");
}
else
{
System.out.println("Position specified is out of range!");
} // end if
} //end add
谢谢!
答案 0 :(得分:1)
问题很可能是你的反向交换,而不是你的toString方法,因为反向交换已经正确获得了EDCB,但是如果用一个空的偏移了。
对不起,我的拼写向后测试失败了Q_Q
答案 1 :(得分:0)
将s初始化为“”不会导致您为项目[0]输出null。导致此输出的原因是您使用的reverse()方法是错误的。