数组列表输出

时间:2011-11-09 23:18:08

标签: java arraylist stringbuffer

我目前正在使用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;

4 个答案:

答案 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! ;)
}