0

ベクターの印刷に問題があります:このベクターがあります:

Vector<StructRicetta> Ricetta=new Vector<StructRicetta>();

クラスStructRicetta:

public class StructRicetta {
    String nomeric;
    int n;
    Vector<String> ingrediente=new Vector<String>();
    Vector<String> quantita=new Vector<String>();
    Vector<Boolean> facoltativo=new Vector<Boolean>();
    String preparazione;
}

この構造の値をファイルから読み取りました。そして、リーダー関数でStructRicettaタイプに戻り、それをベクトルに追加します。

Ricetta.add(Myclass.reader());

結果を印刷するにはどうすればよいですか?

ありがとうございました!

4

5 に答える 5

2

クラスにtoString()メソッドを追加してから、 Vectorsを反復処理する必要があります。

おそらく、各エントリを繰り返してStringBuilderに追加し、コンマなどを使用して区切りますか?Apache Commons StringUtils.join()は、これを1回の呼び出しで実行します。

ノート。Vector最近はほとんど非推奨になっています(メソッドはsynchronisedデフォルトであり、少し無駄です)。代わりにArrayListなどを確認する必要があります。

于 2013-02-05T10:27:16.007 に答える
1

一般に、メモリアドレスの代わりにオブジェクトから有用なものを出力する場合は、パブリックString toString()関数を上書きしてから、System.out.println(そのオブジェクト)を使用して表示する必要があります。

于 2013-02-05T10:28:00.733 に答える
0

クラスにtoString()メソッドを追加してから、StructRicetta

System.out.println(Ricetta);

ベクターの内容をコンソールに出力します。

于 2013-02-05T10:28:45.813 に答える
0

まず、次のtoStringようにVectorを反復処理するよりも、tructRicettaクラスのメソッドをオーバーライドします。

for( StructRicetta rec: Ricetta){
     System.out.println(rec);
}
于 2013-02-05T10:29:16.840 に答える
0

VectorはListを実装し、ListのtoStringルールに従うことに注意してください。ベクターを反復処理するコードを作成する前に、まずそのtoStringが要件を満たしているかどうかをテストします。

それが有用であるためには、StructRicettaに良いtoStringメソッドを与える必要があります。

于 2013-02-05T10:37:52.050 に答える