Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 修改a"&引用;类,以便toString方法对_Java_List_Sorting_Arraylist_Tostring - Fatal编程技术网

Java 修改a"&引用;类,以便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(

嘿,伙计们,我正在进行这个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
循环之前调用,并对
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()
方法。