从另一个类调用toString方法

时间:2014-10-19 06:58:42

标签: java arrays arraylist tostring

以下是我的toString()方法,其中我尝试从名为toString()的其他类调用另一个Tree。我正在尝试返回ArrayList的每个部分,并将其格式化为我toString()类中的Tree,然后将其全部放入"结果" String

到目前为止,我所有的方法都是通过列表并且不返回任何内容。我该怎么做才能将整个列表放在结果字符串中,格式为我toString()类的Tree格式?

   public String toString(){
        String result;
        int i = 0;
        while(i < listOfTrees.size()){
            listOfTrees.get(i);
            i++;
    }

2 个答案:

答案 0 :(得分:1)

使用StringBuilder:

   public String toString(){
        StringBuilder result = new StringBuilder();
        int i = 0;
        while(i < listOfTrees.size()){
            result.append(listOfTrees.get(i) + " "); // this would use the toString
                                                     // method of the type contained
                                                     // in this List
            i++;
        }
        return result.toString();
   }

答案 1 :(得分:0)

您需要使用StringBuilder。让每个String将其附加到构建器,然后返回由它生成的最终String

   public String toString(){
        StringBuilder str= new StringBuilder();
        for(int i = 0; i < listOfTrees.size(); i++){
            str.append(listOfTrees.get(i));
        }
        return str.toString();
    }

另一种方法是首先使用空result字面值初始化String,然后使用+运算符向其中添加其他String s ,但这是非常低效的,因为String是不可变的,每次你用这种方式添加String时,你就会创建一个全新的对象。