数组元素交换javapta
时间: 2024-12-31 17:28:37 浏览: 8
### Java 中数组元素交换方法
在 Java 中,可以通过多种方式实现数组元素之间的交换操作。以下是几种常见的场景及其对应的解决方案。
#### 场景一:简单两元素互换
对于简单的两个元素之间进行交换,可以使用临时变量来完成这一过程[^1]:
```java
public class ElementSwap {
public static void swapElements(int[] array, int indexA, int indexB) {
if (indexA != indexB && indexA >= 0 && indexB < array.length) {
int temp = array[indexA];
array[indexA] = array[indexB];
array[indexB] = temp;
}
}
public static void main(String[] args) {
int[] myArray = {45, 12, 2, 10, 11};
swapElements(myArray, 0, 4);
for (int element : myArray) {
System.out.print(element + " ");
}
}
}
```
这段代码展示了如何定义一个 `swapElements` 方法用于任意索引处的两个元素间的交换,并在一个测试用例中调用了该函数来进行实际的数据交换。
#### 场景二:最大最小值与首尾元素互换
针对特定需求——即找到数组中的最大值和最小值并将它们分别与第一个和最后一个元素交换的情况,下面给出了完整的实现方案[^3]:
```java
import java.util.Scanner;
public class MaxMinSwap {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入数组大小:");
int size = Integer.parseInt(scanner.nextLine());
int[] numbers = new int[size];
// 输入数据
for (int i = 0; i < size; ++i){
System.out.printf("请输入第 %d 个数值:", i+1);
numbers[i] = Integer.parseInt(scanner.nextLine());
}
findAndSwapMaxMin(numbers);
System.out.print("处理后的数组为: ");
for (int num : numbers) {
System.out.print(num + " ");
}
}
private static void findAndSwapMaxMin(int[] nums) {
int maxIndex = 0, minIndex = 0;
for (int i = 1; i < nums.length; ++i) {
if (nums[maxIndex] < nums[i]) maxIndex = i;
if (nums[minIndex] > nums[i]) minIndex = i;
}
// 执行交换逻辑
swap(nums, 0, maxIndex);
swap(nums, nums.length - 1, minIndex);
}
private static void swap(int[] arr, int idx1, int idx2) {
if(idx1 == idx2 || !isValidIndex(arr,idx1)||!isValidIndex(arr,idx2)) return ;
int tmp = arr[idx1];
arr[idx1] = arr[idx2];
arr[idx2] = tmp;
}
private static boolean isValidIndex(int[] arr,int idx){
return idx>=0&&idx<arr.length;
}
}
```
此段代码实现了从控制台读取用户输入的一系列整数形成数组,接着寻找其中的最大值和最小值所在的位置并与首位及末位元素进行了替换,最后打印修改过的新序列。
阅读全文