我有一个包含6个元素A [0,1,2,3,4,5]的数组,我有另外3个元素B [2,1,3]。
我想根据数组B中的值将数组A拆分为3个块,如下所示: 阵列[0,1] 阵列[2] 阵列[3,4,5]
然后我要创建第三个数组,它接受每个新数组的元素0并创建一个新数组,如下所示:
新数组[0,2,3]
任何人都可以告诉我如何做到这一点吗?
答案 0 :(得分:1)
这次你走了。但是下次,正如Rohit Jain所说,做一些研究,试试你的。您不会通过将任务委派给他人来学习如何编程或思考逻辑。
功能
public int[] foo(final int[] values, final int[] sizes) {
final int[] results = new int[sizes.length];
int index = 0;
for (int i = 0; i < sizes.length; i++) {
if (index > values.length)
break;
results[i] = values[index];
index += sizes[i];
}
return results;
}
示例电话:
final int[] values = new int[] {0, 1, 2, 3, 4, 5,};
final int[] sizes = new int[] {2, 1, 3};
final int[] fooedArray = foo(values, sizes);
答案 1 :(得分:0)
如果您只对最终结果感兴趣,则不需要创建中间数组,只需使用索引和数组循环:
int[] a = new int[] { 0, 1, 2, 3, 4, 5 };
int[] b = new int[] { 2, 1, 3 };
int indexA = 0;
int indexB = 0;
int[] result = new int[b.length];
while (indexA < a.length && indexB < b.length) {
result[indexB] = a[indexA];
indexA += b[indexB];
indexB++;
}
for (int r : result) {
System.out.println(r);
}