簡體   English   中英

在java中將兩個整數數組合並為一個數組

[英]Combine two integer arrays into one array in java

我見過類似的問題而沒有提供我正在尋找的答案,所以如果這被視為重復,我會提前道歉。 我正在嘗試將數組{1,2,3}和{4,5,6}組合成{1,2,3,4,5,6}。 我做錯了什么? 我是java的新手。 對不起,如果這個問題很愚蠢。

public class combine {
  public static void main(String[]args){

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

     for(int j=0; j<b.length; j++)
        c[i++]=b[j];
        return c;
}
}

不要自己動手,使用System.arrayCopy()將兩個數組復制到組合大小的新數組中。 這樣效率更高,因為它使用本機操作系統代碼。

代替

int[]c = new int[a+b];

您需要調用merge方法並將結果分配給數組,如:

int[]c = merge(a,b);

你的循環也應該是:

int[]c = merge(a,b);
for(int i=0; i<c.length; i++)
    System.out.print(c[i]+" ");
  String a[] = { "A", "E", "I" };
  String b[] = { "O", "U" };
  List list = new ArrayList(Arrays.asList(a));
  list.addAll(Arrays.asList(b));
  Object[] c = list.toArray();
  System.out.println(Arrays.toString(c));

請嘗試此代碼,我希望它對您有用

String a[] = new String[4];
    String b[] = new String[2];
    String[] ab = new String[a.length + b.length];
    int i, j, d, s = 0;
    @SuppressWarnings("resource")
    Scanner x = new Scanner(System.in);
    System.out.println("Enter the first array");

    for (i = 0; i < a.length; i++) {
        a[i] = x.next();
        for (d = i; d < a.length; d++) {
            ab[d] = a[i];
        }
    }

    System.out.println("Enter the second array");

    for (j = 0; j < b.length; j++) {
        b[j] = x.next();
        for (d = a.length + j; d < ab.length; d++)
            ab[d] = b[j];
    }
    System.out.println();
    System.out.println("The new array is !!");
    System.out.println("--------------------");
    for (s = 0; s < ab.length; s++) {
        System.out.print(ab[s] + " ");
    }
class MerginTwoArray{
public static void mergingarr(int x[], int y[])
{
    int len=x.length+y.length;
    int arr[]=new int[len];
    //create a variable j which will begin zeroth index of second array
    int j=0;
    for(int i=0; i<arr.length; i++)
    {
        if(i<x.length)
        {
            arr[i]=x[i];
        }
        else
        {
            arr[i]=y[j];
            j++;
        }
    }
    for(int i:arr)
    {
        System.out.print(i+ " ");
    }
}
public static void main(String... args)
{
    mergingarr(new int[]{1,2,3}, new int[]{4,5,6});
}

}

希望這對你來說很清楚

您可以使用以下內容:

package array;

public class Combine {

public static void main(String[] args) {

 int[]a = {1,2,3,4};
 int[]b = {4,16,1,2,3,22};
 int[]c = new int[a.length+b.length];
 int count=0;

  for(int i=0; i<a.length; i++)
    {
       c[i]=a[i];
       count++;
    }

 for(int j=0;j<b.length;j++)
    {
       c[count++]=b[j];
    }

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

}

看看我的解決方案(如果需要,你最終可以對其進行排序):

public static int[] mergeAndSortIntArrays(int[] firstInt, int[] secondInt){

    List<Integer> merged = new ArrayList<>();

    for (int i=0; i<firstInt.length; i++){
        merged.add(firstInt[i]);
    }

    for (int i=0; i<secondInt.length; i++){
        merged.add(secondInt[i]);
    }

    Collections.sort(merged);
    int[] result=new int[merged.size()];
    for (int i=0; i<merged.size(); i++){
        result[i]=merged.get(i);
    }
    return result;
}
   int a[] = {
        5, 10, 15, 25
    };
    int b[] = {
        12, 5, 7, 9
    };
    int c[] = new int[8];
    for (int i = 0; i < 4; i++) {
        System.out.println(a[i]);

    }
    System.out.println("**************");
    for (int j = 0; j < 4; j++) {
        System.out.println(b[j]);
    }
    //int[] c=merge(a,b);
    for (int i = 0; i < 4; i++) {

        c[i] = a[i];

    }
    for (int i = 0; i < 4; i++) {
        for (int k = 4; k < 8; k++) {
            c[k] = b[i];
        }

    }
    for (int i = 0; i < 4; i++) {
        System.out.println(c[i]);
    }

連接2個數組的另一種方法是:

System.out.println("Enter elements for a: ");
for (int i = 0; i < 5; i++) {
    int num = in.nextInt();
    a[i] = num;
}

System.out.println("Enter elements for b: ");
for (int i = 0; i < 5; i++) {
    int num = in.nextInt();
    b[i] = num;
}

void merge() {
    int c[] = new int[10];
    System.arraycopy(a, 0, c, 0, a.length);
    System.arraycopy(b, 0, c, a.length, b.length);

    System.out.println(Arrays.toString(c));  // merged array 
}

合並兩個沒有arraylist的數組。

    public class Main {


    static int a[] = {1, 2, 3, 4};
    static int b[] = {5, 6, 7, 8};

    public static void main(String[] args) {

        System.out.println("Hello World!");
        int totalLengh = a.length + b.length;

        int c[] = new int[totalLengh];

        int j = 0;
        for (int i = 0; i < totalLengh; i++) {

            if (i < a.length) {

                c[i] = a[i];

            } else {
                c[i] = b[j];
                j++;
            }

            System.out.println("" + c[i]);
        }
    }
}
 public class MergeArrays {
    public static void main(String[]args){
         int[] a = {1, 2, 3};
         int[] b = {4, 5, 6};
         int[] c = new int[a.length+b.length];// Here length of int[] c will be 6
         int count = 0;

         //looping to store the value length of i
         for(int i = 0; i<a.length; i++) { 
             c[i] = a[i];
             count++;
          }
        //looping to store the value length of j
          for(int j = 0;j<b.length;j++) { 
             c[count++] = b[j];
          }
        //looping to retrieve the value of c
          for(int i = 0;i<c.length;i++) 
              System.out.print(c[i]);// Displaying looped value/output in single line at console 

    }
}
public static void main(String[]args){

        int[]a = {1, 2, 3};
        int[]b = {4, 5, 6};
        int[]c ;
        c=merge(a,b);
        for(int i=0; i<c.length; i++)
            System.out.print(c[i]+" ");
    }
    public static int[]merge(int[]a, int[]b){
        int[]c = new int[a.length+b.length];
        int i;
        for(i=0; i<a.length; i++)
            c[i] = a[i];
        System.out.println(i);
        for(int j=0; j<b.length; j++)
            c[i++]=b[j];
        return c;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM