繁体   English   中英

修改“”类,以便toString方法对列表进行排序

[英]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;

是。 您可以在listOfHorsesfor循环之前调用Collections.sort(listOfHorses) ,并使用listOfCows进行相同listOfCows

我要指出的是-除了功课之外toString()方法进行大量计算的设计想法很差,而使其副作用(在这种情况下,修改数组列表)的设计想法更糟糕。 。

toString()应该没有副作用。 当被调试器或日志记录语句调用时,这些副作用将改变程序的功能并引起混乱。

另外, output += string的循环比在StringBuffer构建output += string要慢。 如果迭代的数量较大时,这将是因为它会O(N ^ 2),即,正比于串的数目的平方,而不是成比例的串的数目的工作慢得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM