如何将两个数组相互对应的数组排序java
时间: 2024-05-08 15:15:08 浏览: 14
假设有两个数组 a 和 b,要实现对 a 数组元素的排序,同时保证 b 数组元素与 a 数组元素对应排序。
可以使用 Java 中的 Arrays 类中的 sort 方法,该方法可以根据指定的比较器对数组进行排序。可以自定义一个比较器,比较器中比较 a 数组中的元素大小,如果相同则比较 b 数组中对应位置的元素大小。
以下是示例代码:
```java
import java.util.Arrays;
import java.util.Comparator;
public class SortCorrespondingArrays {
public static void main(String[] args) {
int[] a = {3, 1, 4, 2};
int[] b = {10, 30, 20, 40};
// 定义一个比较器
Comparator<Integer> comparator = new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
int result = i1.compareTo(i2);
if (result == 0) {
// 如果 a 数组中元素相同,则比较对应位置的 b 数组中的元素大小
int index = Arrays.binarySearch(a, i1);
return Integer.compare(b[index], b[Arrays.binarySearch(a, i2)]);
}
return result;
}
};
// 使用指定的比较器对 a 数组进行排序
Arrays.sort(a, comparator);
// 输出排序结果
System.out.println(Arrays.toString(a)); // [1, 2, 3, 4]
System.out.println(Arrays.toString(b)); // [30, 40, 10, 20]
}
}
```
运行结果:
```
[1, 2, 3, 4]
[30, 40, 10, 20]
```
可以看到,a 数组按照从小到大的顺序进行了排序,同时 b 数组也按照对应位置的元素排序。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)