ArrayList doscObject=[{id=21},{id=212}];
上記の出力例のように、すべての ID を含む配列名 IdArray を取得したい場合は、次のようになります: IdArray={21,212} どうすればそれを行うことができますか?
ArrayListではなくプレーン配列が必要であることを考慮してください。
int[] idList = IDObj[docsObject.size()];
for (int i=0;i<docsObject.size();i++)
{
idList[i] = docsObject.get(i).getId();
}
あなたがクラスを持っていると仮定します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());
}
最初に元のすべての値を保持するのに十分な大きさの結果配列を作成し(配列サイズは固定されており、使用する前に宣言する必要があるため)、それぞれを新しい配列にコピーする必要があります。
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次関数があると、はるかに簡単になりますが、そうではないため、手動で行う必要があります。
この質問はあまり意味がありませんが、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);