我目前正在使用Iterator输出数组列表,但我想在一行上输出它。我认为我最好的选择是使用字符串缓冲,但有人有更有效的方法吗?
我目前的输出方法是:
Iterator itr = cards.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
System.out.println();
}
这样做根本没有效率,但我现在理解的是:
Iterator itr = cards.iterator();
String str = "";
while(itr.hasNext()){
str += (itr.next() + ", ");
}
return str;
答案 0 :(得分:2)
使用System.out.print()
代替System.out.println()
。
请参阅PrintStream
答案 1 :(得分:1)
使用Arrays#toString
将数组转换为String
,如下所示:
final String string = Arrays.toString( myArray );
System.out.println( string );
答案 2 :(得分:0)
您可以使用System.out.print()方法,它不会更改该行。
但我建议使用更有效的方法,比如你建议的StringBuffer。
答案 3 :(得分:0)
你应该在stackoverflow上进行一些搜索。我认为你的问题有一些很好的解决方案。 例如,检查一下: Java: StringBuffer & Concatenation
你应该像这样解决问题:
public String myMethod() {
StringBuilder sb = new StringBuilder();
Iterator itr = cards.iterator();
while(itr.hasNext()){
addToBuffer(sb, itr.next());
}
return sb.toString();
}
private void addToBuffer(StringBuilder sb, String what) {
sb.append(what).append(' '); // char is even faster here! ;)
}