//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中的数组不可调整大小,这似乎使事情变得困难。
答案 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;
}