有两个数组:a[]={1,2,3,4};b[]={5,6,7,8} 
现在想把他们合并为:c[]={1,2,3,4,5,6,7,8} 
有什么方法比较简单高效率!

解决方案 »

  1.   

    System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
      

  2.   

    int a[] = {1,2,3};
    int b[] = {4,5,6};
    int c[] = new int[6];
    System.arraycopy(a,0,c,0,a.length);
    System.arraycopy(b,0,c,3,b.length);
    for (int i = 0; i < c.length; i++)
    {
    System.out.println(c[i]);
    }
      

  3.   

    就是这样我以为楼主的意思是两个排好序的数组,组合排好序,不知道是不是多此一举了
    public class arrayCombine { /**
     * @param args
     */
    public static void main(String[] args) {
    int a[] = {1,2,3,4};
    int b[] = {5,6,7,8};
    int c[] = combine(a,b);
    }
    public static int[] combine(int[] a, int[] b)
    {
    int alen = a.length;
    int blen = b.length;
    int clen = alen+blen;

    int i,j;
    int[] c = new int[clen];
    for(i=0,j=0;i<alen&&j<blen;)
    {
    if(a[i]<b[j])
    {
    c[i+j]=a[i];
    i++;
    }
    else 
    {
    c[i+j]=b[j];
    j++;
    }


    } if(i==alen) System.arraycopy(b,j,c,alen+j,blen-j); if(j==blen) System.arraycopy(a,i,c,blen+i,alen-i);
    for(int k=0;k<a.length+b.length;k++)
    System.out.println(c[k]);
    return c;

    }}
      

  4.   

    lingkeylbh(凌可) 一箭双雕好!
      

  5.   

    class ArrayCopy {
    public static void main(String[] args) {
    int [] a = {1,2,3,4};
    int [] b = {5,6,7,8};
    int [] c = null;
    int alength = a.length;
    int blength = b.length;
    int clength = a.length + b.length;
    c = new int[clength];
    System.arraycopy(a,0,c,0,alength);
    System.arraycopy(b,0,c,alength,blength);
    for(int i = 0;i < clength;i++) {
    System.out.println(c[i]);
    }
    }
    }
      

  6.   

    两个无序数组合并并且排序的话:
    public class acopy { public static void main(String[] args) {
    int a[] = {1,13,9,4};
    int b[] = {5,11,7,8};
    int c[] = combine(a,b);
    }
    public static int[] combine(int[] a, int[] b)
    {
    int alen = a.length;
    int blen = b.length;
    int clen = alen+blen;

    //数组合并
    int i,j;
    int temp;
    int[] c = new int[clen];
    System.arraycopy(a,0,c,0,alen);
    System.arraycopy(b,0,c,alen,blen);

    //数组元素按递增排序
    for(i=0;i<clen;i++)
    {
    for(j=0;j<clen-i-1;j++)
    {
    if(c[j]>c[j+1])
    {temp=c[j];
     c[j]=c[j+1];
     c[j+1]=temp;}
    else{}

    }
    } for(int k=0;k<clen;k++)
    System.out.println(c[k]);
    return c;

    }}