Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个一维数组求和的Java方法_Java_Arrays_Methods_Int - Fatal编程技术网

两个一维数组求和的Java方法

两个一维数组求和的Java方法,java,arrays,methods,int,Java,Arrays,Methods,Int,我是一名Java初学者,目前正在为考试而学习。我有一本关于任务的书,一个任务是两个任务,写一个方法,如果两个int数组的长度相同,它求和两个int数组。如果它们的大小不同,则结果应为空。对于不均匀的结果,我使用double作为值类型。我从这个开始: package aufgaben; public class Aufgabe7 { public static double ArrayRechner(int[] a, int [] b) { double ergeb

我是一名Java初学者,目前正在为考试而学习。我有一本关于任务的书,一个任务是两个任务,写一个方法,如果两个int数组的长度相同,它求和两个int数组。如果它们的大小不同,则结果应为空。对于不均匀的结果,我使用double作为值类型。我从这个开始:

package aufgaben;

public class Aufgabe7 {

    public static double ArrayRechner(int[] a, int [] b) {  
        double ergebnis;
        if (a.length == b.length) {
            result = a + b; // this gives me an error
            System.out.println("Fast geschafft");
        }
        else {
            result = 0.0;
        }
        System.out.println("the result is " + result);
        return result;
    }
}
但在标记的代码行上写着:

未为参数类型int[],int[]定义运算符+


我的问题在哪里?我必须重写什么?

在Java数组中没有用于添加的重载。您有两个
int[]
实例,可以使用
IntStream
获得
sum()
(假设您使用的是Java 8+)。并且,请遵循Java命名约定。看起来像

public static double getArrayRechner(int[] a, int[] b) {
    double result = 0;
    if (a != null && b != null && a.length == b.length) {
        result = IntStream.of(a).sum() + IntStream.of(b).sum();
        System.out.println("Fast geschafft");
    }
    System.out.println("the result is " + result);
    return result;
}

Java数组中没有用于添加的重载。您有两个
int[]
实例,可以使用
IntStream
获得
sum()
(假设您使用的是Java 8+)。并且,请遵循Java命名约定。看起来像

public static double getArrayRechner(int[] a, int[] b) {
    double result = 0;
    if (a != null && b != null && a.length == b.length) {
        result = IntStream.of(a).sum() + IntStream.of(b).sum();
        System.out.println("Fast geschafft");
    }
    System.out.println("the result is " + result);
    return result;
}

我认为Java不支持使用+操作将两个数组的内容添加到一起。我将遍历这两个数组并将所有内容相加

public static double ArrayRechner(int[] arrayEins, int[] arrayZwei) {
    double ergebniss = 0;
    if (arrayEins.length == arrayZwei.length) {
        for (int X = 0; X < arrayEins.length; X++) {
            ergebniss += arrayEins[X] + arrayZwei[X];
        }
    }
    return ergebniss;
}
公共静态双数组技术(int[]arrayEins,int[]arrayZwei){
双ergebnis=0;
if(arrayEins.length==arrayZwei.length){
对于(int X=0;X
我认为Java不支持使用+操作将两个数组的内容添加到一起。我将遍历这两个数组并将所有内容相加

public static double ArrayRechner(int[] arrayEins, int[] arrayZwei) {
    double ergebniss = 0;
    if (arrayEins.length == arrayZwei.length) {
        for (int X = 0; X < arrayEins.length; X++) {
            ergebniss += arrayEins[X] + arrayZwei[X];
        }
    }
    return ergebniss;
}
公共静态双数组技术(int[]arrayEins,int[]arrayZwei){
双ergebnis=0;
if(arrayEins.length==arrayZwei.length){
对于(int X=0;X
Java不支持运算符重载

public static double ArrayRechner(int[] a, int [] b) {
        double result = 0.0;
        if (a.length > 0 && a.length == b.length) {
            int sumOfA = Arrays.stream(a).sum();
            int sumOfB = Arrays.stream(b).sum();
            result = sumOfA + sumOfB;
            System.out.println("Fast geschafft");
        }
        System.out.println("the result is " + result);
        return result;
}

Java不支持运算符重载

public static double ArrayRechner(int[] a, int [] b) {
        double result = 0.0;
        if (a.length > 0 && a.length == b.length) {
            int sumOfA = Arrays.stream(a).sum();
            int sumOfB = Arrays.stream(b).sum();
            result = sumOfA + sumOfB;
            System.out.println("Fast geschafft");
        }
        System.out.println("the result is " + result);
        return result;
}

您可以通过使用for循环迭代两个数组中的每个元素来计算总和。这是一种直观易懂的方法

if (a.length == b.length) {
     for (int i = 0; i < a.length; i++) {
          result += a[i] + b[i];
     }
     System.out.println("Fast geschafft");
}
if(a.length==b.length){
for(int i=0;i
您可以通过使用for循环迭代两个数组中的每个元素来计算总和。这是一种直观易懂的方法

if (a.length == b.length) {
     for (int i = 0; i < a.length; i++) {
          result += a[i] + b[i];
     }
     System.out.println("Fast geschafft");
}
if(a.length==b.length){
for(int i=0;i
工作代码:

public class Aufgabe7 {

    public static int result = 0;

    public static int ArrayRechner(int[] a, int[] b) {

        if (a.length == b.length) {

            for (int i = 0; i < a.length; i++) {
                result = result + a[i] + b[i];

            }
            System.out.println("Fast geschafft");
        }

        return result;

    }

    public static void main(String args[]) {
        int a[] = { 1, 1, 1 };
        int b[] = { 2, 2, 2 };
        System.out.println(ArrayRechner(a, b));

    }
}
公共类Aufgabe7{
公共静态int结果=0;
公共静态int-ArrayRechner(int[]a,int[]b){
如果(a.length==b.length){
for(int i=0;i
工作代码:

public class Aufgabe7 {

    public static int result = 0;

    public static int ArrayRechner(int[] a, int[] b) {

        if (a.length == b.length) {

            for (int i = 0; i < a.length; i++) {
                result = result + a[i] + b[i];

            }
            System.out.println("Fast geschafft");
        }

        return result;

    }

    public static void main(String args[]) {
        int a[] = { 1, 1, 1 };
        int b[] = { 2, 2, 2 };
        System.out.println(ArrayRechner(a, b));

    }
}
公共类Aufgabe7{
公共静态int结果=0;
公共静态int-ArrayRechner(int[]a,int[]b){
如果(a.length==b.length){
for(int i=0;i
您可以调用
sum()
而不是
reduce(0,Integer::sum)
您可以只调用
sum()
而不是
reduce(0,Integer::sum)