我正在尝试编写一个方法,该方法将两个 int [] 作为参数并返回一个新的 int [],该新 int [] 由两个给定数组交替填充。例如:给定数组 [1,2,3] 和 [10,20,30] 将返回 [1,10,2,20,3,30]。任何帮助都会很棒,谢谢。
这是我现在拥有的:
public int [] alternate(int [] a, int [] b){
int[] c = new int[a.length + b.length]
for (int i = 0; i < c.length; i + 2){
c[i] = a[i];
c[i + 1] = b[i];
}
return c;
最佳答案
- 缺少分号
- 仅增加
a
的长度 - 假设 a 和 b 的大小相同 - 有计数器来跟踪新元素插入的位置,或者按照@ErwinBolwidt 的想法使用
- 正常增加
i
- 发帖前 self 测试代码
所以
public static int [] alternate(int [] a, int [] b){
int[] c = new int[a.length + b.length];
int counter = 0;
for (int i = 0; i < a.length; i++){
c[counter++] = a[i];
c[counter++] = b[i];
// or
//c[2 * i] = a[i];
//c[2 * i + 1] = b[i];
}
return c;
}
主要测试:
public static void main(String[] args) {
int[] a = {1,2,3} ;
int[] b = {10,20,30} ;
int[] test = alternate(a,b);
System.out.println(Arrays.toString(test));
}
控制台输出:
[1, 10, 2, 20, 3, 30]
关于java - 在 java 中创建交替数组方法,你能告诉我哪里出错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126259/