Java 切换生成的int数组的最大负元素和最小正元素

Java 切换生成的int数组的最大负元素和最小正元素,java,arrays,Java,Arrays,我的任务是编写一个java程序,生成20个随机整数[-10;10]的数组。然后我必须切换这个生成数组的最大负元素和最小正元素 数组: public class Array public static void main(String[] args) { int arr[]; arr = new int [20]; for (int i=0;i<arr.length;i++) arr[i] = (int) ( Math.random() *

我的任务是编写一个java程序,生成20个随机整数[-10;10]的数组。然后我必须切换这个生成数组的最大负元素和最小正元素

数组:

public class Array

public static void main(String[] args) {
    int arr[];
    arr = new int [20];
    for (int i=0;i<arr.length;i++)
            arr[i] = (int) ( Math.random() * 21)-10;
    for (int i: arr)
            System.out.print( i + " " );
}
公共类数组
公共静态void main(字符串[]args){
int-arr[];
arr=新整数[20];

对于(int i=0;i,解决方案可能更复杂,因为您没有唯一的数字,但根据您的问题,这里有一个简单的解决方案(它将第一个最小值更改为第一个最大值)

迭代数组,保持
max
min
+它们的位置(
maxPos
minPos
),然后使用
aux
切换它们:

    int max = arr[0], min = arr[0];
    int maxPos = 0, minPos = 0;
    for (int i = 1; i < arr.length; i++) {
        if (max > arr[i]) {
            max = arr[i];
            maxPos = i;
        }
        if (min < arr[i]) {
            min = arr[i];
            minPos = i;
        }
    }

    int aux = arr[maxPos];
    arr[maxPos] = arr[minPos];
    arr[minPos] = aux;
    arr[maxPos] += arr[minPos];
    arr[minPos] = arr[maxPos] - arr[minPos];
    arr[maxPos] -= arr[minPos];

但它更复杂。

你能把你迄今为止尝试过的东西的代码发布出来吗?请你的问题添加所有必要的信息。