为每个循环创建和填充数组

时间:2014-12-06 21:07:18

标签: java arrays for-loop each

//is there any way to do this

public Entry[] getArray(SimpleHashtable table) {

  Entry[] data;

  for (Entry k: table) {

    //do something here

  }

  return data; //array that contains all elements stored in table
}

有没有办法用每个循环中的元素创建和填充数组?

简短解释:

我已经创建了存储对象的类SimpleHashtable,它实现了Iterable。 现在我必须编写返回存储在SimpleHashtable中的元素数组的代码方法,并且首先想到的是迭代SimpleHashtable并在当时填充数组元素,但是我找不到任何这样的例子。 / p>

如果我希望避免在此期间将元素放入列表中,直到我迭代了SimpleHashtable(看起来很乱)。

我知道Java中的数组不可调整大小,这似乎使事情变得困难。

1 个答案:

答案 0 :(得分:1)

假设您的班级SimpleHashtable有一个方法size()来获取元素数量(您需要调整数组的大小)。然后,您可以使用类似

for-each loop(根据要求)进行迭代
SimpleHashtable<Object> sh;
// ...
Object[] arr = new Object[sh.size()];
int pos = 0;
for (Object obj : sh) {
  arr[pos++] = obj;
}