2010-11-27 6 views
0

Je dois trier une base de données de 1 chaîne array et 2 tableaux int. Voilà ce que j'ai jusqu'à présent:Java triant des tableaux parallèles

public static void sortDatabase(int numRecords, String[] sDeptArr, 
       int[] iCourseNumArr, int[] iEnrollmentArr) 
    { 
     int length = sDeptArr.length; 
     for(int i=0; i<length-1; i++) 
     { 
      int iPosMin = i; 
      for(int j=i+1; j<length; j++) 
      { 
       if(sDeptArr[j].compareTo(sDeptArr[iPosMin]) == 0) 
        iPosMin = j; 
       else if(sDeptArr[j].equals(sDeptArr[iPosMin]) && iCourseNumArr[j] < iCourseNumArr[iPosMin]) 
        iPosMin = j; 
      } 
     } 
    } 

Je n'ai pas encore le tester parce que l'ensemble du programme ne se fait pas, mais ce que ça ressemble ça va dans la bonne direction? Je veux trier la base de données par ordre alphabétique d'abord par nom, puis si les noms sont les mêmes, utilisez le numéro du cours pour trier.

+1

Quelles que soient les raisons, vous n'utilisez pas sql pour le faire? –

+0

Parce que je dois le faire en Java. – Mike

Répondre

2

IMHO votre direction n'est pas optimale. La meilleure façon que je connaisse est de créer une nouvelle structure de données

public class Data implements Comparable<Data> { 
    private String sDeptArr; 
    private int iCourseNumArr; 
    private int iEnrollmentArr; 

    public int compareTo(Data other) { 
    // your implementation 
    } 
} 

maintenant créer un tableau ou d'une collection de données:

List<Data> 
Data[] 

utiliser maintenant Arrays.sort() ou Collections.sort().

+0

Pas si simple. Nous devons utiliser java et le faire de la façon dont le professeur a dit en utilisant une méthode et en utilisant quelque chose comme cela vu ci-dessus dans mon message original. – Mike