Java 如何连接两个不同的阵列?

Java 如何连接两个不同的阵列?,java,arrays,Java,Arrays,如果我有一个名称数组和一个圈数数组,我将如何链接这两个数组,以便对时间进行排序,并且仍然保留关联的名称? 这是两个阵列的外观: String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"}; int[] times = { 341, 273, 278, 329, 445 }; 到目前为止,我运行了一个选择排序算法,以使最低次数达到最高次数,但我不知道如何保持paul与341的连接 我不想连接这两个数组,我希望能够对时间数组进

如果我有一个名称数组和一个圈数数组,我将如何链接这两个数组,以便对时间进行排序,并且仍然保留关联的名称? 这是两个阵列的外观:

String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"};
    int[] times = { 341, 273, 278, 329, 445 };
到目前为止,我运行了一个选择排序算法,以使最低次数达到最高次数,但我不知道如何保持paul与341的连接


我不想连接这两个数组,我希望能够对时间数组进行排序,然后调用与特定时间关联的名称。

请使用array room进行排序。比如说

names[0] = "Paul"
times [0] = 341

类似这样的情况

保留名称时间数组,并使用第三个数组,该数组包含其他两个数组的索引:

 String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"};
    int[] times = { 341, 273, 278, 329, 445 };
    int[] index = { 0, 1, 2, 3, 4};
名称时间上运行排序算法(取决于排序方式)。运行算法时,通过索引数组访问时间数组(例如):

times[index[x]]; // where x is whatever index you are on during your sort
当您发现需要交换两个项目时,请对索引数组执行交换操作:

swap(index[0], index[1]);
排序算法完成后,名称时间数组通过其数组位置保持关联,但如果通过索引数组访问它们,则将按排序顺序访问它们


p、 我觉得为你做学校作业很肮脏:)

将时间数组和元素在两个数组中的位置一起排序,这样,当发生交换时,它将保持时间和名称数组之间的链接,下面是程序,我按降序排序

public static void main(String[] args){
        String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"};
        int[] times = { 341, 273, 278, 329, 445 };
        
        
        for(int outerIndex = 0; outerIndex < times.length; outerIndex++){
            for(int innerIndex = outerIndex+1;  innerIndex < times.length; innerIndex++){
                if(times[outerIndex]<times[innerIndex]){
                    swap(outerIndex, innerIndex, names, times);
                }
            }
        }
    }
输入:

String[]name={“Paul”、“Dan”、“Hayden”、“Sam”、“Pauline”}

int[]次={341,273,278,329,445}

输出:

String[]name={“Pauline”、“Paul”、“Sam”、“Hayden”、“Dan”}

int[]次={445341329278273}


视情况而定。你要么想要一个自定义对象类的
列表
,要么想要一个
映射
。你为什么不编写一个包含名称和时间的类,并且包含该类对象的数组。这是一个硬件作业,教授给了我们这两个数组作为输入。我想他不想让我们改变这一部分可能的复制品你能解释得更详细些吗?我不知道你说的“使用数组房间排序”是什么意思。交换操作是否来自java.util.array?老实说,这个家庭作业更多的是关于创建排序算法。如果我的教授没有给我们这段代码,我计划使用2D数组(我在上一个硬件上做了这件事,效果非常好)并对时间进行排序。另外@crchurchey,当你说通过索引数组访问时间数组时,你的意思是键入时间[index[x]],而不是名称[index[x]],对吗?交换是通用的;如果实现,它只交换索引[0]和索引[1]取消引用的项。很多排序算法都使用类似的东西。教授只是让你实现一个函数?它是否有一个返回类型,或者您应该只按顺序打印数组?
public static void swap(int outerIndex, int innerIndex, String[] names, int[] times){
        int tempTime;
        String tempName;
        
        tempTime = times[outerIndex];
        tempName = names[outerIndex];
        
        times[outerIndex] = times[innerIndex];
        names[outerIndex] = names[innerIndex];
        
        times[innerIndex] = tempTime;
        names[innerIndex] = tempName;
    }