2010-03-13 12 views
0

J'ai une configuration d'arborescence. J'ai aussi des instructions d'entrée pour que l'utilisateur puisse entrer une chaîne, puis un entier, puis une chaîne (le prénom, l'âge et le nom de famille).Tri d'une liste en langage Java

J'ai besoin de trier l'arraylist par le nom de famille. Le code que je suis entré à ce jour est tout selon la méthode principale: -

public static void main(String[] args) { 
Name Name[] = new Name[50]; 
int count = 0; 

for (int i=0; i<50; i++) 
    NewName[i] = new Name(); 

//ADD NEW TO ARRAYLIST NAME 
String FName = JOptionPane.showInputDialog("first name"); 
int age = Integer.parseInt(JOptionPane.showInputDialog("age")); 
String LName = JOptionPane.showInputDialog("last name"); 
      NewName[count] = new Name(FName, age, LName); 
count = count++; 
} 

//ITEMS SORT BY LAST NAME 
//CODE FOR SORT GOES HERE 
+1

Il existe une convention pour nommer les variables de petite lettre dans Java. – Artic

+0

Vous utilisez un tableau d'objets Name, n'utilisant pas réellement 'ArrayList'. –

+0

Le tri dépend de l'implémentation de l'objet 'Name'. Je peux seulement vous suggérer à propos de 'Arrays.sort',' Collections.sort', et 'Comparator'. – Pindatjuh

Répondre

5

Jetez un oeil à Comparable, Comparator, Arrays.sort et Collections.sort

import java.util.Arrays; 


class Name implements Comparable<Name> { 

    private String lastName; 
    //Other fields 

    public Name(String lastName){ 
     this.lastName = lastName; 
    } 

    public int compareTo(Name o) { 
     //Null checks etc 
     return lastName.compareTo(o.lastName); 
    } 
    public String getLastName(){ 
     return lastName; 
    } 
    //Getter and setter methods 
} 

public class Test{ 
    public static void main(String[] args) { 
     Name[] arr = new Name[]{new Name("AAC"), new Name("AAD"), new Name("AAA"),new Name("ABC"), new Name("AADDE")}; 
     Arrays.sort(arr); 
     for(Name nm:arr){ 
      System.out.println(nm.getLastName()); 
     } 
    } 
} 
+0

+1 pour Arrays.sort –

+0

J'ai essayé ceci, et cela ne fonctionne toujours pas ... – Computeristic

+0

Ajout de code, bien que ce soit un concept très basique pour Java. – saugata

4

Ce ne vise pas à être offensant mais je vous suggérerait d'apprendre les bases avant de passer à Swing.

+0

Je connais les bases, c'est juste les tableaux que j'ai des problèmes avec ... – Computeristic

+3

Je pense que Helper suggère des tableaux sont les bases. J'aurais tendance à être d'accord. – Carl