0

I am currently using an Iterator to output an array list but I want to output it all on one line. I think my best bet would be to use a stringbuffer but does anyone have a more effective method?

My current method of output is this:

Iterator itr = cards.iterator();
while(itr.hasNext()){
    System.out.println(itr.next());
    System.out.println(); 
}

Went with this Not efficient at all but its all I understand at the moment:

 Iterator itr = cards.iterator();
 String str = "";
    while(itr.hasNext()){
        str += (itr.next() + ", ");
    }
    return str;
4

4 に答える 4

2

System.out.print()の代わりに使用しSystem.out.println()ます。

見るPrintStream

于 2011-11-09T23:20:53.657 に答える
1

次のようArrays#toStringに、配列を に変換するために使用します。String

final String string = Arrays.toString( myArray );
System.out.println( string ); 
于 2011-11-09T23:22:38.003 に答える
0

System.out.print() メソッドを使用できますが、行は変更されません。

しかし、あなたが提案した StringBuffer のような、より効率的な方法を使用することをお勧めします。

于 2011-11-09T23:23:59.843 に答える
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! ;)
}
于 2011-11-10T00:24:59.207 に答える