将两个阵列组合在一起?

时间:2013-01-15 02:31:14

标签: java arrays

我正在编写这个程序而且我认为我已经写了所有内容,但它会弹出'.class'预期,我不明白为什么。请帮我。感谢。

import java.util.*;

public class JoinArrays
{
    public static void main(String[] args)
    {
        int[] x = { 5, 4, 3, 2, 1};
        int[] y = { 8, 7, 6};
        int[] z;
        int   i;

        System.out.println("Original arrays:");
        display(x);
        display(y);

        z = joinArrays(x, y);

        System.out.println("Result of join(x,y).");
        display(z);
   }

   private static void display( int[] x )
   {
       int i;

       System.out.print("Array: ");
       for(i=0; i < x.length; i++)
       {
           if( i < x.length-1 )
                System.out.printf("%3d, ", x[i]);
           else
                System.out.printf("%3d\n", x[i]);
       }
    }

    public static int[] joinArrays(int[] x, int[] y)
    {
        int i;
        return int x[i] + int y[i];
    }

}

4 个答案:

答案 0 :(得分:2)

问题是您的joinArrays方法没有意义。

  1. int x[i] + int y[i];并不意味着表达完整。 x[i] + y[i] 语法有效...

  2. 变量i未初始化,因此不允许x[i] + y[i]

  3. 即使允许x[i] + y[i],它实际上是添加两个整数...来给出一个整数。

  4. 基本上,你在这里咆哮错误的树。 Java没有用于连接或连接数组的运算符(或任何其他形式的语法)。您需要创建一个足够大的新数组来保存xy的元素,并将xy的元素复制到新数组中;请参阅@ dicarlo2的答案以获取示例。


    我可以建议您更好地阅读有关Java的教程或教科书,而不是通过猜测语法应该是什么来学习Java ...

答案 1 :(得分:1)

public static int[] joinArrays(int[] x, int[] y) {
    int[] arr = new int[x.length + y.length];
    System.arraycopy(x, 0, arr, 0, x.length);
    System.arraycopy(y, 0, arr, x.length, y.length);
    return arr;
}

是你想要的。请参阅@ StephenC的答案,了解您的实施无效的原因。

答案 2 :(得分:0)

试试这个:

package **YOUR PACKAGE NAME**;

import java.util.*;

public class **YOUR CLASS NAME** { public static void main(String[] args)

{

    int[] x = { 5, 4, 3, 2, 1};
    int[] y = { 8, 7, 6};
    int[] z;

    System.out.println("Original arrays:");
    display(x);
    display(y);

    z = joinArrays(x, y);

    System.out.println("Result of join(x,y).");
    display(z);
}

private static void display( int[] x )
{
   System.out.print("Array: ");
   for(int i=0; i < x.length; i++)
   {
       if( i < x.length-1 )
            System.out.printf("%3d, ", x[i]);
       else
            System.out.printf("%3d\n", x[i]);
   }
}

public static int[] joinArrays(int[] x, int[] y)
{
    int [] combination;
    if(x.length < y.length)
        combination = new int[x.length];
    else
        combination = new int[y.length];
    for(int i = 0; i < x.length && i < y.length; i++)
        combination[i] = x[i] + y[i];
    return combination;
}
}

答案 3 :(得分:0)

按照建议ArrayUtils.addAll()查看来自Apache Commons的in here