嘿伙计们,我在这个java项目的最后一步,我想我知道从哪里开始这个最后一块,但我不知道如何。
我应该:修改一个类,使得toString方法在迭代列表之前对奶牛列表和马匹列表进行排序。 (我应该做的一个例子)
我怎么能开始?牛和马的名单是arraylist的一部分。
会涉及到收藏吗?这是我的toString方法的代码。
public String toString()
{
NumberFormat fmt = NumberFormat.getCurrencyInstance();
String output = "**************************************************\n"
+ "* List of Horses *\n"
+ "**************************************************\n";
for( Horse horse : listOfHorses )
{
output += horse + "\n"
+ "--------------------------------------------------\n";
}
output += "\n**************************************************\n"
+ "* List of Cows *\n"
+ "**************************************************\n";
for( Cow cow : listOfCows )
{
output += cow + "\nVisit Rate:\t\t\t"
+ fmt.format( cow.getBillAmount() ) + "\n"
+ "--------------------------------------------------\n";
}
return output;
答案 0 :(得分:1)
是。您可以在for
的{{1}}循环之前致电Collections.sort(listOfHorses),并对listOfHorses
执行相同操作。
让我指出 - 除了家庭作业 - 用listOfCows
方法进行大量计算是一个糟糕的设计理念,更糟糕的设计理念是它有副作用(在这种情况下) ,修改arraylists)。
toString()
应该没有副作用。当调试器或日志记录语句调用时,这些副作用将改变程序的作用并导致混淆。
此外,执行toString()
的循环比在output += string
中构建字符串要慢。如果迭代次数很多,它将多慢,因为它的工作将是O(N ^ 2),也就是说,与字符串的平方数成正比,而不是与数字成比例字符串。