java中怎么合并两个数组 简单明了的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么合并两个数组 简单明了的相关的知识,希望对你有一定的参考价值。

我学的是基础 公式没学过 简单一点的

int[] arr1 = 1,2,3,4,11;
int[] arr2 = 6,7,8,9,10;
int newLength = arr1.length + arr2.length;
int[] arr_target = new int[newLength];
//参数:源数组,源数组起始位置,目标数组,目标数组起始位置,复制长度
System.arraycopy(arr1, 0, arr_target, 0, arr1.length);
System.arraycopy(arr2, 0, arr_target, arr1.length, arr2.length);
//输出合并后数组
for (int i : arr_target) 
System.out.println(i);

//排序
Arrays.sort(arr_target);
//输出排序数组
for (int i : arr_target) 
System.out.println(i);

//逆序
int[] arr_reverse = new int[newLength];
int flag = 0;
for (int i : arr_target) 
arr_reverse[newLength - flag - 1] = i;
flag++;

//输出逆序数组
for (int i : arr_reverse) 
System.out.println(i);

数组合并不一定非得遍历

具体的输出题主自己再修改吧

参考技术A public static void main(String[] args) 
int [] a=10,20,30;
int [] b=40,50,60;
int [] c = new int[a.length+b.length];
for(int i=0;i<a.length+b.length;i++)
if(i<a.length)
c[i]=a[i];
else
c[i]=b[i-a.length];


for(int i =0 ;i<c.length;i++)
System.out.print(c[i]+" ");

System.out.println();
System.out.print("逆序后(冒泡排序):");
int temp;
for(int i=0 ;i<c.length-1;i++)
for(int j=i;j<c.length;j++)

if(c[j]>c[i])
temp = c[i];
c[i] = c[j];
c[j] = temp;


for(int i =0 ;i<c.length;i++)
System.out.print(c[i]+" ");


参考技术B 先用循环,将2个数组合并起来。然后用冒泡排序。

LeetCode88-简单-合并两个有序数组

思路:

首先思考,如果一个指针指nums1,一个指针指nums2;他俩开始比,大的放nums1,就会产生覆盖。那该怎么去做呢??

方法1:重开一个m+n大的数组....

方法2:(更好的方法)从后往前比较!

考虑两种情况  ————(  画图推一遍  )

AC代码:

//时间复杂度是O(N)
//空间复杂度是O(1)
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
    int end1 = m-1,end2 = n-1;
    int end = m+n-1;
    while(end1 >= 0 && end2 >= 0)
    
        if(nums1[end1] > nums2[end2])
        
            nums1[end--] = nums1[end1--];
        
        else
        
            nums1[end--] = nums2[end2--];
        
    
    while(end2 >= 0)
    
        nums1[end--] = nums2[end2--];
    

以上是关于java中怎么合并两个数组 简单明了的的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode88-简单-合并两个有序数组

LeetCode88-简单-合并两个有序数组

LeetCode88-简单-合并两个有序数组

如何把2个数组合并为一个数组

JAVA怎么合并两个数组

java数组的合并问题