我正在开发一个简单的程序,目前,它将输入的名称和标记写入两个独立的数组,并且数组计数器已同步。例如,第一个数组上的条目#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()
等任何函数按字母顺序排序字符串数组的最佳方法,而不是使用嵌套循环进行冒泡或交换排序吗
如何同步排序,以便当名称在第一个数组中进行混洗时,相应的标记会以相同的方式进行混洗,保持数据的正确性?
答案 0 :(得分:0)
首先,我建议不要这样做。我会创建一个包含名称和标记的类,将其存储在数组中,并对生成的数组进行排序。
然后,如果你真的想这样做,例如在冒泡排序中,当正常代码说要在你正在排序的数组中交换元素i和j时,只需在另一个数组中交换元素i和j。这将完成这项工作。