ArrayList类型java来创建一个数组

时间:2013-02-11 22:02:09

标签: java arraylist

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

我想得到一个数组名称IdArray,它包含所有id,如上例所示输出应该如下:     IdArray = {21212} 我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:1)

假设你有一个班级IdObj

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

并且docsObjects包含IdObj类型的对象,然后创建ArrayList 通过迭代docsObject:我使用for forEach类型的for循环:

   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()); 
    }

答案 1 :(得分:1)

考虑到你想要一个普通数组而不是一个ArrayList。

int[] idList = IDObj[docsObject.size()];
for (int i=0;i<docsObject.size();i++)
{
    idList[i] = docsObject.get(i).getId();
}

答案 2 :(得分:0)

这个问题没有多大意义,但我会简要介绍两种收集类型之间的工作......

阵列:

int[] idArray = {21, 212};

的ArrayList:

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

ArrayLists - &gt;阵列:

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

数组 - &gt; ArrayList的:

Collections.addAll(doscObject, idArray); 

答案 3 :(得分: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具有映射数组的二阶函数会更容易,但它不需要手动执行。