以下是我的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++;
}
答案 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
时,你就会创建一个全新的对象。