【问题标题】:How do I switch these 2 elements in this JAVA array?如何在这个 JAVA 数组中切换这两个元素?
【发布时间】:2021-01-23 01:46:33
【问题描述】:

我正在尝试使用 for 循环来切换此数组中的最大和最小元素,但我似乎不知道该怎么做。有人能帮我吗?非常感谢,谢谢!

public void assign(int[]IntArray) {
    int BiggestNumber = IntArray[0];
    int SmallestNumber = IntArray[0];
    for(int i = 0; i < IntArray.length; i++) {
       if(IntArray[i] > BiggestNumber) {
            BiggestNumber = IntArray[i];
       } else if(IntArray[i] < SmallestNumber) {
             SmallestNumber = IntArray[i];
       }
    }
    BiggestNumber = IntArray[SmallestNumber];
    System.out.println(BiggestNumber);
}

【问题讨论】:

  • 您需要记住最小值和最大值的数组索引,而不是值本身。

标签: java arrays loops for-loop


【解决方案1】:

这个问题可以有多种解决方案。

我会使用索引而不是值/数字,即 BiggestNumber 和 SmallestNumber 分别是最大和最小数字的索引。然后,我将 IntArray[i] 的值与 IntArray[BiggestNumber] 和 IntArray[SmallestNumber] 进行比较,如果为真,则将索引 i 存储在 BiggestNumber 或 SmallestNumber 中。最后,在我的for 循环之后,我将使用另一个变量交换两个索引处的数组中的值。

为你指明方向:

int BiggestNumber = 0;
int SmallestNumber = 0;

if(IntArray[i] > IntArray[BiggestNumber])
{
  BiggestNumber = i;
}

然后交换:

int a = IntArray[BiggestNumber];
IntArray[BiggestNumber] = IntArray[SmallestNumber];
IntArray[SmallestNumber] = a; 

希望你能填补我留给你完成作业的缺失部分。

P.S.:我假设该方法适用于实例/对象级别,即根据您的代码是非静态的,否则,我会在其中添加关键字 static

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多