java - java - 如何在java中使用do while循环从第一个数组中填充第二个数组?
问题描述
所以基本上我的问题是这样的:
我有一个数组(第一个数组,数组 A),它有 20 个元素,整数值从 0 到 20(它们可以是随机的),例如:
1 2 3 4 5 6 1 2 3 4
1 2 3 4 5 6 1 2 3 4
我需要创建另一个具有 40 个元素的数组(第二个数组,数组 B),它与第一个数组具有相同的值,但问题是第一个数组的值用于第二个数组,但是在这种模式下:
1 1 2 2 3 3 4 4 5 5
6 6 1 1 2 2 3 3 4 4
5 5 6 6 1 1 2 2 3 3
4 4 5 5 6 6 1 1 2 2
基本上,第二个数组的值从一开始就是:
B[0] = A[0]
B[1] = A[0]
B[2] = A[1]
B[3] = A[1]
etc.
我需要通过使用 do while 循环来实现它。
do {
i++;
B[i] = A[i];
if(i>1) {
B[i] = A[i-1];
}
System.out.print("\t" + B[i]+ " ");
}
while(i < 20);
现在我被这个困住了,我无法弄清楚说明第二个数组(B)是如何填充的部分。任何帮助表示赞赏!
解决方案
你可以这样做:
int[] A = {1,2,3,4,5,6,1,2,3,4};
int[] B = new int[A.length * 2];
int i = 0;
do {
int index = 2 * i;
B[index] = A[i];
B[index + 1] = A[i];
i++;
} while(i < A.length);
您在这里所做的是将每个元素从 A 映射到2x
其2x + 1
索引。然后您可以按照您的意图填写“空白”。
推荐阅读
- scala - 在地图中使用枚举枚举不起作用
- java - 如何使用 gradle 构建更多项目,而他们共享的部分只会构建一次?
- ios - 视图出现时选择collectionView中的Item
- jenkins - 如何在 Jenkins 的 Mac OSX 10.13.3 上修复 hudson.plugins 的“无法实例化可选组件”?
- java - 为什么在关闭并重新打开对话框片段后保留对象列表的值?
- d3.js - 用 Vega 生成 3D 曲面图?
- ansible - 在 Ansible 剧本中运行角色的子任务会破坏相对路径
- c# - 空 ItemsControl 导致 WPF 中的内存泄漏
- java - “android.view.ViewGroup”类型的实例不能分配给“com.android.keyguard.ChallengeLayout”类型的变量
- python - Django:在模板中过滤数据库查询