Java 修改a"&引用;类,以便toString方法对
嘿,伙计们,我正在进行这个java项目的最后一步,我想我知道从哪里开始这最后一步,但我不知道如何开始 我应该: 修改一个类,使toString方法在遍历列表之前对奶牛列表和马列表进行排序。(我应该做什么的一个例子) 我怎样才能开始呢?牛和马的列表是arraylist的一部分 是否会涉及收款?这是我的toString方法的代码Java 修改a"&引用;类,以便toString方法对,java,list,sorting,arraylist,tostring,Java,List,Sorting,Arraylist,Tostring,嘿,伙计们,我正在进行这个java项目的最后一步,我想我知道从哪里开始这最后一步,但我不知道如何开始 我应该: 修改一个类,使toString方法在遍历列表之前对奶牛列表和马列表进行排序。(我应该做什么的一个例子) 我怎样才能开始呢?牛和马的列表是arraylist的一部分 是否会涉及收款?这是我的toString方法的代码 public String toString() { NumberFormat fmt = NumberFormat.getCurrencyInstance(
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
循环之前调用,并对listOfCows
执行相同的操作
让我指出,撇开作业不谈,toString()
方法进行大量计算是一个糟糕的设计思想,而更糟糕的设计思想是它有副作用(在本例中,修改ArrayList)
toString()
应该没有副作用。当被调试器或日志语句调用时,这些副作用将改变程序的功能并导致混乱
此外,执行
output+=string
的循环将比在StringBuffer
中构建字符串慢。如果迭代的次数很大,它会慢得多,因为它所做的工作将是O(N^2),也就是说,与字符串数的平方成正比,而不是与字符串数成正比。谢谢Jerry,因此我只需添加例如Collections.sort(ListOfcws);收集。分类(病人名单)?是的,我同意toString方法的评论,但它是在描述中这样做的:/yes,Collections.sort(listOfCows)
将排序listOfCows
,也就是说,重新排序该ArrayList的元素。真棒,我知道这看起来像是一个简单的问题,只是不知道它有那么简单。很高兴提供帮助。如果答案有效,请记住“接受”。@user3347866 Collections.sort()是一个很好的方法。但是,您必须重写Cow类的compareTo()
、equals()
和hashCode()
方法。