在Java中对两个不同数据类型的数组进行排序

时间:2016-11-16 07:34:04

标签: java arrays sorting

我有以下问题: 我有两个不同数据类型的数组,例如

byte[] a = {2,5,3};
long[] b = {2,0,1};

我想要b进行排序,并且必须分别更改a中的条目,s.t。我得到了

byte[] a = {5,3,2};
long[] b = {0,1,2};

我已经看到大多数人使用比较器做到这一点,但似乎不适用于不同的数据类型。我正在寻找一种有效的解决方案,因为阵列长度将非常大。但是,a只有两个不同的条目0和1(但我仍然希望将其保留为字节以便有更多条目的选项)并且所有对(0,x)已经排序(这意味着如果我只选择其中的对第一个条目是0然后它已经排序)。对于对(1,x')也是如此,但是b中的条目没有完全排序。我希望我的问题得到澄清。我很高兴有任何建议。

非常感谢你!

编辑:显然这个问题:Sort a parallel array using Arrays.sort()非常相似。但是,我无法复制任何工作示例。有没有人有一个完整的工作示例?

1 个答案:

答案 0 :(得分:0)

如果您标记了问题,我会尝试解决您的问题,但在您的问题描述中显示您错过了一个类。

public class MyClass implements Comparable {

    private byte;
    private long;
    //getters setters
    //compare method according to your requirements.
}

然后您将拥有MyClass[],您可以对其进行排序。

如果你想坚持你的问题,只需实现一个排序算法,对你的一个数组进行排序,当你只执行交换时,也交换第二个数组中的元素。