gpt4 book ai didi

java - 以交替方式合并两个数组

转载 作者:行者123 更新时间:2023-12-02 07:21:31 25 4
gpt4 key购买 nike

我试图合并到具有相同大小的int类型的数组。这是我的代码

public class classA
{
static int[] mergeArray(int[] arr1, int arr2[])
{
int arr3[] = new int[arr1.length+ arr2.length];
int count = 0;
for(int i = 0; i < arr1.length; i++){
arr3[count] = arr1[i];
count++;
arr3[count] = arr2[i];
}
for(int i = 0; i < arr3.length; i++){

System.out.print(arr3[i]);
}
return arr3;
}

public static void main(String[] args) throws IOException
{
int arr1[] = {1,2,3};
int arr2[] = {4,5,6};
int arr3[] = mergeArray(arr1,arr2);
}
}

当我尝试首先在循环中打印数字时,它会给我1,4,2,5,3,6正确的输出。但是,当我尝试在第一个for循环之外打印它时,它会给我输出1,2,3,6,0,0。有人能帮我吗?
TIA

最佳答案

for循环中,从arr2复制时,您需要增加count

arr3[count] = arr2[i];
count++;

您还可以将代码简化一下,
static int[] mergeArray(int[] arr1, int[] arr2) {
int[] arr3 = new int[arr1.length * 2];
int count = 0;
for (int i = 0; i < arr1.length; i++) {
arr3[count++] = arr1[i];
arr3[count++] = arr2[i];
}
return arr3;
}

print中的 main一样
int arr3[] = mergeArray(arr1, arr2);
System.out.println(Arrays.toString(arr3));

Java 8+中的 ,请使用 flatMapIntStream
static int[] mergeArray(int[] arr1, int[] arr2) {
return IntStream.range(0, arr1.length)
.flatMap(i -> IntStream.of(arr1[i], arr2[i])).toArray();
}

对于相同的结果。

关于java - 以交替方式合并两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com