【问题标题】:How to write a method which will take an array of ints in the argument [closed]如何编写一个在参数中采用整数数组的方法[关闭]
【发布时间】:2020-10-28 16:47:38
【问题描述】:

在我的编程任务中,我必须编写一个方法,该方法将在参数中获取一个整数数组,并返回一个新数组,其中仅填充输入数组中的偶数。结果数组不能有任何零,并且旨在与偶数一样大。 我可以寻求帮助吗

public class ArraysToMethod {
   public int max(int [] array) {
      int max = 0;

      for(int i=0; i<array.length; i++ ) {
         if(array[i]>max) {
            max = array[i];
         }
      }
      return max;
   }
}

【问题讨论】:

  • 能分享一下你试过的代码吗?
  • 感谢编辑
  • 嗯,我有点困惑。您共享的代码似乎在做其他事情......(寻找最大元素)
  • 我的代码肯定有问题,我正在寻找一些建议
  • 如果这是你解决问题的尝试,你能回答我2个问题吗:1.你为什么选择那个方法的返回类型int? 2. 为什么叫那个方法max

标签: java arrays methods task


【解决方案1】:

我认为你的问题涉及这四个任务:

  1. 检查数字是否不为零且为偶数。您可以使用以下简单函数轻松检查数字是偶数还是奇数以及大于零:
private static boolean isEvenAndNotZero(int num) {
    return (num != 0) && (num % 2 == 0);
}
  1. 计算偶数个数。您可以使用上面创建的实用函数来计算偶数元素的数量,如下所示:
private static int getNumberOfEvenElements(int[] inputArr) {
    return (int) Arrays.stream(inputArr)
            .filter(ArraysToMethod::isEvenAndNotZero)
            .count();
}
  1. 分配不包含零或偶数的结果数组。您只需要根据结果数组大小消耗之前方法的输出即可:
int[] resultArr = new int[getNumberOfEvenElements(inputArr)];
  1. 将偶数复制到结果数组并返回。为此,您只需迭代输入和结果数组并复制满足第 1 点所述条件的值。

当你结合所有这些时,你的结果函数应该是这样的:

private static int[] getEvenElementsArray(int[] inputArr) {
    // 1. Count number of Even Elements
    int nEvens = getNumberOfEvenElements(inputArr);
    // 2. Create result array with size = number of even elements
    int[] resultArr = new int[nEvens];

    // 3. Iterate over input array to copy even values
    //    to result array
    int resultIndex = 0;
    for (int j : inputArr) {
        // 4. Check fields which are even and not zero
        if (isEvenAndNotZero(j)) {
            resultArr[resultIndex] = j;
            resultIndex++;
        }
    }
    return resultArr;
}

【讨论】:

  • 如果 inputArr 是最终的,为什么是第二个条件?
  • 能否详细说明您的问题? inputArr 成为最终条件会对第二个条件产生什么影响?您是指我在最终清单中的回答或评论中的第 2 点吗?
  • int nEvens = getNumberOfEvenElements(inputArr); 有问题并使用 isEvenAndNtZero
  • 它告诉我“无法解析方法”
  • @starskyhutch,当然!否则,编译器怎么知道它们?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 2023-03-18
  • 2017-05-16
相关资源
最近更新 更多