2016-02-27 66 views
0

我做一个小测验程序,读取从一个txt文件的答案的单线条,并将它们放入单独的阵列,其中有一个是名字。使用它们的索引号一次对多个数组进行排序?

我试图用自己的索引号在一次多个阵列排序。我能名称进行排序,但答案本身并不进行排序,例如:

本:

一个

Ç

艾丹:

˚F

,我将能够改变次的顺序埃尔名字,但无法弄清楚如何将他们的答案带给他们。有什么建议?

这是我的代码至今:

String[] names = new String[4]; 
String[] answersA = new String[7]; 
String[] answersB = new String[7]; 
String[] answersC = new String[7]; 
String[] answersD = new String[7]; 
String[] answersE = new String[7]; 
String[] answersF = new String[7]; 

try { 
    Arrays.sort(names); 
} catch (NullPointerException e) { 
    System.out.println("meh"); 
} 
for (int i = 0; i < names.length; i++) { 
    System.out.println(names[i]); 
    System.out.println(answersA[i]); 
    System.out.println(answersB[i]); 
    System.out.println(answersC[i]); 
    System.out.println(answersD[i]); 
    System.out.println(answersE[i]); 
    System.out.println(answersF[i]); 
} 
+4

了解类和对象。你不想要7个数组。你需要一个Player对象的数组,每个Player对象都有一个名字,并且有6个答案。然后你可以按名字排列玩家。 –

回答

2

当你有一个逻辑程序中组合在一起的数据,并且其中凝聚力单元具有语义值,表示你的程序中的一个"object"。对象可以包含各种类型的数据,甚至包括其他对象。

对于这种情况,你所述的学生(有姓名)及其对各测验问题的回答。这里的OOP方法将模拟封装这些数据点的Student类,而不是试图独立于彼此操纵它们。一个有用的练习是考虑你的程序将要解决的所有问题,并考虑哪些类型的东西构成了这个问题。你可以有一个Student类,和一个Answer类来解决你目前的问题。你的学生有一个名字(这只是纯文本)和一系列答案(你可以使用一个数组,虽然Java List API通常更容易使用)。如果你想跟踪问题陈述及其正确答案,你也可以有一个Question类。

如果您仍然需要对学生进行排序的能力,例如,根据他们在测验中的表现,可以使用Comparator。找到如何使用它的例子不应该太难。您也可以让您的Student类实现Comparable界面,以按名称对学生进行排序。这将允许您使用Collections.sort方法很容易地对学生收藏进行排序。

0

如果你可以使用数组列表下面的例子将是有益的:

List<Integer> ids = Arrays.asList(0, 1, 2, 3); 
List<String> colors = Arrays.asList("blue", "yellow", "red", "black"); 
List<String> clothes = Arrays.asList("shoes", "pants", "boots", "coat"); 

//排序ID

concurrentSort(ids, ids, colors, clothes); 

//按颜色

concurrentSort(colors, ids, colors, clothes); 

//排序衣服

concurrentSort(clothes, ids, colors, clothes); 

并行排序功能是:

https://ideone.com/cXdw6T

与此类似,您可以根据姓名答案列表进行排序。

相关问题