-4
 ArrayList doscObject=[{id=21},{id=212}];

上記の出力例のように、すべての ID を含む配列名 IdArray を取得したい場合は、次のようになります: IdArray={21,212} どうすればそれを行うことができますか?

4

4 に答える 4

1

ArrayListではなくプレーン配列が必要であることを考慮してください。

int[] idList = IDObj[docsObject.size()];
for (int i=0;i<docsObject.size();i++)
{
    idList[i] = docsObject.get(i).getId();
}
于 2013-02-11T22:11:48.433 に答える
1

あなたがクラスを持っていると仮定しますIdObj:

public class IdObj {
   int id;
   public int getId();
}

docsObjectsタイプのオブジェクトを含むIdObjを作成し、ArrayList を反復処理して を作成します: for ループdocsObjectのタイプを使用しました:forEach

   ArrayList<Integer> idList = new ArrayList<Integer>();
   for (IDObj idObj in docsObject) {
       idList.add(idObj.getId()); 
    }

docObjs が (値 IdObj) の HashMap である場合、次のように繰り返すことができます。

   ArrayList<Integer> idList = new ArrayList<Integer>();
   for (Map.Entry entry in docsObject.entrySet()) {
        IdObj idObj = entry.getValue();
        idList.add(idObj.getId()); 
    }
于 2013-02-11T22:06:06.857 に答える
0

最初に元のすべての値を保持するのに十分な大きさの結果配列を作成し(配列サイズは固定されており、使用する前に宣言する必要があるため)、それぞれを新しい配列にコピーする必要があります。

int[] idArray = new int[doscObject.size()];
for(int i=0, max = doscObject.size(); i<max; i++){
    idArray[i] = ((Map)doscObject.get(i)).get("id");
}

Javaに配列をマッピングするための2次関数があると、はるかに簡単になりますが、そうではないため、手動で行う必要があります。

于 2013-02-11T23:06:57.363 に答える
0

この質問はあまり意味がありませんが、2 つのコレクション タイプ間で作業するための簡単な入門書を提供します...

配列:

int[] idArray = {21, 212};

配列リスト:

List<Integer> doscObject = new ArrayList<Integer>();
doscObject.add(21);
doscObject.add(212);

ArrayLists -> 配列:

Integer[] idArray = doscObject.toArray(new Integer[doscObject.size()]);

配列 -> 配列リスト:

Collections.addAll(doscObject, idArray); 
于 2013-02-11T22:09:04.077 に答える