Tri d'un arraylist en langage Java
Question
J'ai un arraylist mis en place. Je instuctions d'entrée mis en place trop, de sorte que l'utilisateur peut entrer une chaîne, puis un entier, puis une chaîne (le prénom, l'âge et le nom de famille).
Je dois trier les 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
La solution
Jetez un oeil à Comparable , Comparator, < a href = "http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html#sort%28T[],%20java.util.Comparator%29" rel = » nofollow noreferrer "> 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());
}
}
}
Autres conseils
Ce ne vise pas à être offensant, mais je vous suggère d'apprendre les bases avant de passer au Swing.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow