Java 小挑战。比较3个单独数组的和

Java 小挑战。比较3个单独数组的和,java,multidimensional-array,Java,Multidimensional Array,代码假定对每个数组求和。之后,可以使用它来比较哪个和最大或最小。有人知道更短的方法或更有效的方法吗 int[] route1 = {12,34,21,46,25}; int[] route2 = {24,1,5,64,10,15,21}; int[] route3 = {1,13,15,16}; public static String shortestRoute(int [] route1, int [] route2, int [] route3){ int sum1 = 0;

代码假定对每个数组求和。之后,可以使用它来比较哪个和最大或最小。有人知道更短的方法或更有效的方法吗

int[] route1 = {12,34,21,46,25};
int[] route2 = {24,1,5,64,10,15,21};
int[] route3 = {1,13,15,16};

public static String shortestRoute(int [] route1, int [] route2, int [] route3){
    int sum1 = 0;
    int sum2 = 0;
    int sum3 = 0;

    int[][] arrays = {route1, route2, route3};

    //how to write shorter the part below???
    ///////////////////////////////////////////////////////////////
    for(int i = 0; i<arrays.length; i++){
        for(int j =0; j<arrays[i].length; j++){

            if(i==0){
                sum1 += arrays[i][j];
            }else if(i==1){
                sum2 += arrays[i][j];
            }else{
                sum3 += arrays[i][j];
            }          
        }   
    }
    /////////////////////////////////////////////////
}
int[]route1={12,34,21,46,25};
int[]路由2={24,1,5,64,10,15,21};
int[]route3={1,13,15,16};
公共静态字符串短路由(int[]route1、int[]route2、int[]route3){
int sum1=0;
int-sum2=0;
int sum3=0;
int[][]数组={route1,route2,route3};
//下面的部分怎么写???
///////////////////////////////////////////////////////////////

对于(int i=0;i从Java 8开始,数组求和可以在一行代码中完成,从而可以从程序中删除所有循环和多维数组处理:

int sum1 = Arrays.stream(route1).sum();

从Java 8开始,可以在一行代码中对数组求和,从而可以从程序中删除所有循环和多维数组处理:

int sum1 = Arrays.stream(route1).sum();

关于最长/最短路线计算的单线解决方案的更详细示例

public static void main(String[] args) {
    int[] route1 = {12, 34, 21, 46, 25};
    int[] route2 = {24, 1, 5, 64, 10, 15, 21};
    int[] route3 = {1, 13, 15, 16};

    shortestRoute(route1,route2,route3);
    longestRoute(route1,route2,route3);
}
private static long shortestRoute(int[]... routes) {
    return Arrays.stream(routes)
            .mapToInt(value -> Arrays.stream(value).sum()).min().getAsInt();
}
private static long longestRoute(int[]... routes) {
    return Arrays.stream(routes)
            .mapToInt(value -> Arrays.stream(value).sum()).max().getAsInt();
}

关于最长/最短路线计算的单线解决方案的更详细示例

public static void main(String[] args) {
    int[] route1 = {12, 34, 21, 46, 25};
    int[] route2 = {24, 1, 5, 64, 10, 15, 21};
    int[] route3 = {1, 13, 15, 16};

    shortestRoute(route1,route2,route3);
    longestRoute(route1,route2,route3);
}
private static long shortestRoute(int[]... routes) {
    return Arrays.stream(routes)
            .mapToInt(value -> Arrays.stream(value).sum()).min().getAsInt();
}
private static long longestRoute(int[]... routes) {
    return Arrays.stream(routes)
            .mapToInt(value -> Arrays.stream(value).sum()).max().getAsInt();
}

代码是有效的,因此这不是问题的合适站点。最好是在上,但是如果你在那里询问,一定要查看他们的帮助文件,以确保问题被正确询问。你也可以从使用求和数组开始,如果代码有效,则删除不必要的
,因此这不是合适的站点e表示问题。最好是在上,但如果您确实在那里提问,请务必查看他们的帮助文件,以确保问题的提问是正确的。您也可以从使用求和数组开始,并删除不必要的
if
s