我有一个包含String
,int
和double
的ArrayList,总共20个元素。
我试图将Strings
移至字符串数组,将ints
移至int数组,将doubles
移至双精度数组。但是我不知道怎么做,这就是我寻找整数的原因:
private ArrayList <Object> randomList = new ArrayList <Object>();
private int [] intArray = new int[10];
public void example(){
createArray();
for(int i = 0; i<randomList.size();i++){
if(randomList.get(i)instanceof Integer){
intArray[i]= (Integer) randomList.get(i);
}
}
}
我不明白为什么这个不起作用,它试图将arent Integers的对象添加到我的数组中,导致outOfBounds异常,因为它试图添加10个以上的元素。
最佳答案
您的索引不匹配,仅此而已。尝试类似的东西:
int index = 0;
for(int i = 0; i<randomList.size();i++)
{
if(randomList.get(i)instanceof Integer)
{
intArray[index++]= (Integer) randomList.get(i);
}
}
您还应该检查特定数组的当前索引是否小于上限,即该数组的初始大小:
if(randomList.get(i) instanceof Integer && index < intArray.length)