单独比较两个数组元素的总和

时间:2016-12-19 13:51:00

标签: java arrays sum compare

我们有两个差异阵列,即 array1 &的数组2 即可。单独找出它们的总和并进行比较 他们的总和并打印' - 1'如果第一个数组的总和小于 第二个数组打印'1'

int array1[] = new int[3]; // array one
   int array2[] = new int[3];  // array two
   int sum1= 0, sum2= 0;

   for(int i=0; i<=2; i++){
     array1[i] = scanner.nextInt();   // storing value by user in first array
     array2[i] = scanner.nextInt();   // storing value by user in second array
     }

   for(int a1 : array1){ 
      sum1 += a1;    // sum of array
     } 
   for(int a2 : array2){ 
      sum2 += a2;   // sum of array2
     }  

   if(sum1<sum2){
       System.out.print("-1");}  //print -1 if sum1 is less than sum2
    else{
       System.out.println("1");}

我试图尽可能紧凑地执行此程序,但我不知道如何做到这一点。      任何人都可以告诉我这个代码的紧凑程序

2 个答案:

答案 0 :(得分:1)

您可以用一个循环替换3个循环:

for(int i=0; i<=2; i++){
    array1[i] = scanner.nextInt();   // storing value by user in first array
    array2[i] = scanner.nextInt();   // storing value by user in second array
    sum1 += array1[i];
    sum2 += array2[i];
}

答案 1 :(得分:0)

试试这个:

int sum1 = Arrays.stream(array1).sum();
int sum2 = Arrays.stream(array2).sum();
int result = Integer.compare(sum1, sum2); //-1, 0 or 1
System.out.println("" + result);

或更短:

System.out.println("" + Integer.compare(Arrays.stream(array1).sum(), Arrays.stream(array2).sum()));