嘿,大家好,我正在执行这个 java 项目的最后一步,我想我知道从哪里开始完成这最后的部分,但我不知道如何开始。
我应该:
修改一个类,以便 toString 方法在迭代列表之前对牛列表和马列表进行排序。 (我应该做什么的一个例子)
我该如何开始?牛和马的列表是数组列表的一部分。
会涉及 Collection 吗?这是我的 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;
最佳答案
是的。您可以调用Collections.sort(listOfHorses)在 listOfHorses
上的 for
循环之前,并对 listOfCows
执行相同的操作。
让我指出——撇开家庭作业不谈——用 toString()
方法进行大量计算是一个糟糕的设计理念,而如果它有一边的话,那就更糟糕了效果(在本例中,修改数组列表)。
toString()
应该没有副作用。当被调试器或日志语句调用时,这些副作用将改变程序的功能并导致困惑。
此外,执行output += string
的循环将比在StringBuffer
中构建字符串慢。如果迭代次数很大,它会慢很多,因为它所做的工作将是 O(N^2),即与字符串数量的平方成正比,而不是与数量成正比字符串。
关于java - 修改 ""类,以便 toString 方法对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22727013/