0
ArrayList<Fix> fixList = new ArrayList<Fix>();
StringTokenizer st = new StringTokenizer(idlist, ",");
int index = 0;
while(st.hasMoreElements()) {
    Long id = Long.parseLong(st.nextElement().toString());          
    fixList.add(index++,fixManager.getFixById(id));
}

ここでのArraylistは、1つの要素のみを取ることができます。私はそれをデバッグしました、それは単一の要素だけを取ります、しかしカウントは2つ以上の要素がarraylistにあることを示します。

4

5 に答える 5

0

あなたの構文は正しいですが、あなたの方法

fixManager.getFixById(id)

内部ループは、その ID に基づいて 1 つの要素のみを返します。

getFixById(id)fixManager 内をデバッグすることで確認できます。

于 2012-10-02T06:32:37.370 に答える
0

インデックスを定義せずに要素を追加しないのはなぜですか?

fixList.add(fixManager.getFixById(id));

http://javafiddle.net/jqPDmaをチェックしてください

于 2012-10-02T06:19:46.233 に答える
0

必要なあらゆる種類のマッピングに使用HashMapします..

Map<Integer, Fix> fixList = new HashMap<Integer, Fix>();
StringTokenizer st = new StringTokenizer(idlist, ",");
int index = 0;
while(st.hasMoreElements()) {
    Long id = Long.parseLong(st.nextElement().toString());          
    fixList.put(index++,fixManager.getFixById(id));
}

またはid、オブジェクト内にFixある場合..リストに要素を追加するだけです..それらにアクセスするため2ndの は必要ありません..index

fixList.add(fixManager.getFixById(id));
于 2012-10-02T06:19:56.840 に答える
0

次のコードを試しました

ArrayList <Integer> x = new ArrayList<Integer>();

    for(int i=0;i<15;i++)
    {
        x.add(i);
        x.add(i);

    }

    for(int i=0;i < x.size();i++)
    {
        System.out.println(x.get(i));
    }

そしてそれはうまくいきます。getFixbyID() 関数を確認する必要があると思います。各呼び出しで新しい修正タイプのオブジェクトが返されているかどうかは疑問です。

于 2012-10-02T06:36:31.463 に答える
0

各呼び出しに対して fixManager がオブジェクトを返すことは確かですか? null を追加しようとしても、ArrayList は文句を言いません。

于 2012-10-02T06:28:59.380 に答える