按字母顺序排序数组与另一个数组同步

时间:2014-04-21 16:09:08

标签: java arrays sorting

我正在开发一个简单的程序,目前,它将输入的名称和标记写入两个独立的数组,并且数组计数器已同步。例如,第一个数组上的条目#3中的名称对应于第二个数组上的条目#3中的标记。到目前为止我的代码是这样的:

import java.io.*;

public class project
{
    int ctr;
    int ctr1;
    int pos;
    int temp;
    int max;

    public static void main(String args[]) throws IOException
    {
        new project().input();
    }

    void input() throws IOException
    {
        BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
        System.out.println ("How many children?");
        int n = Integer.parseInt(obj.readLine());
        String a[] = new String[n];
        int b[] = new int[n];
        for(ctr=0;ctr<n;ctr++)
        {
            System.out.println("Enter name");
            a[ctr]=obj.readLine();
            System.out.println("Enter marks");
            b[ctr]=Integer.parseInt(obj.readLine());
        }
    }
}

我现在想按字母顺序对名称列表进行排序,以便在按顺序打印数组时,名称按字母顺序从A到Z排列。

使用compareTo()sort()等任何函数按字母顺序排序字符串数组的最佳方法,而不是使用嵌套循环进行冒泡或交换排序吗

如何同步排序,以便当名称在第一个数组中进行混洗时,相应的标记会以相同的方式进行混洗,保持数据的正确性?

1 个答案:

答案 0 :(得分:0)

首先,我建议不要这样做。我会创建一个包含名称和标记的类,将其存储在数组中,并对生成的数组进行排序。

然后,如果你真的想这样做,例如在冒泡排序中,当正常代码说要在你正在排序的数组中交换元素i和j时,只需在另一个数组中交换元素i和j。这将完成这项工作。