[英]Modify a “” class such that the toString method sorts the list of
大家好,我在这个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;
是。 您可以在listOfHorses
的for
循环之前调用Collections.sort(listOfHorses) ,并使用listOfCows
进行相同listOfCows
。
我要指出的是-除了功课之外toString()
方法进行大量计算的设计想法很差,而使其副作用(在这种情况下,修改数组列表)的设计想法更糟糕。 。
toString()
应该没有副作用。 当被调试器或日志记录语句调用时,这些副作用将改变程序的功能并引起混乱。
另外, output += string
的循环比在StringBuffer
构建output += string
要慢。 如果迭代的数量较大时,这将是因为它会O(N ^ 2),即,正比于串的数目的平方,而不是成比例的串的数目的工作要慢得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.