所以在java中,这就是我要执行的内容:
num [0]=list.get(2);
num [1]=list.get(4);
num [2]=list.get(6);
num [3]=list.get(8);
我有一个名为list的整数的arraylist,我想将从2开始的偶数索引中的值放入索引0,1,2,3等中名为num的整数数组中。我的问题是,我正在尝试在for循环中执行此操作,但我不确定如何去做。这就是我所拥有的:
for (int i=0; i<list.size()-2; i++){
num[i] = list.get(i+2);
}
我的问题是,在递增i之后,我的arraylist也会转到下一个索引,而不是每个其他索引。我尝试了这个循环的多种变体,但我不断遇到同样的问题。
答案 0 :(得分:2)
这应该这样做:
int max = list.size()/2;
if(list.size()%2==0) max-=1; // prevents IndexOutOfBounds for even list lengths
for (int i=0; i<max; i++){
num[i] = list.get(i*2 + 2);
}
答案 1 :(得分:1)
你可以尝试这样的事情。
for (int i=0,j=0; i<list.size()-2; i+=2,j++){
num[j] = list.get(i+2);
}
答案 2 :(得分:1)
只要 i
小于(list.size()-1)/2
List<Integer> list = Arrays.asList(0,1,2,3,4,5,6);
int size = (list.size()-1)/2;
int[] num = new int[size];
for (int i=0; i<size; i++){
num[i] = list.get(i*2+2);
}
System.out.println("num="+ Arrays.toString(num));
这是DEMO
答案 3 :(得分:0)
这应该有效:
for(int i = 0; i < list.size() - 2; i++)
num[i] = list.get((i * 2) + 2);