java - 在 Java 中对数组进行排序

标签 java arrays sorting

我想将 2 个数组传递给 Java 中的一个函数,并在调用函数中对它们进行排序。我如何使用函数来完成它?

我可以让函数返回一个包含 2 个数组的对象,但是有没有非面向对象的解决方案呢?

编辑:在这种特殊情况下,我无法在 Java 中使用内置的 Array.sort 函数。可以说这两个数组是高度和体重。它们的长度相同,并且相同的索引对应于两个数组中同一个人的高度和体重。我想对高度数组进行升序排序,同时对高度数组对应的权重数组进行排序。所以使用排序函数会弄乱两个数组之间的关系。

最佳答案

public void sort2(Object o1[], Object o2[])
{
  Arrays.sort(o1);
  Arrays.sort(o2);
}

稍微复杂一些:

public <T> void sort2(T o1[], T o2[],  Comparator<? super T> c)
{
  Arrays.sort(o1, c);
  Arrays.sort(o2, c);
}

编辑:通常,当您使用并行数组时,这意味着您没有正确使用对象。以您的示例为例,您应该有一个具有高度和重量属性的 Comparable Person 类。当然,就像Mehrdad说的,你可以手动实现一个并行的数组排序算法,但这确实不太理想。

关于java - 在 Java 中对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1022234/

相关文章:

java - 创建一个方法来检查排序算法是否稳定

java - 使用 JSTL 调用对象方法

java - Java 8 121 中需要 BouncyCasSTLe 吗?

php - call_user_func_array() 将数组作为字符串传递 bug?

C++ 如何使用运算符 < 对 vector<class *> 进行排序

javascript - 禁用可排序选项

java - 是否有开箱即用的支持将基于 OAuth2 的 Bearer token 与 Apache HttpClient 一起使用?

Java 在构造函数之前调用方法

c++ - 为什么我们甚至需要 "delete[]"运算符?

javascript - 在javascript中从数组访问对象?