Ordenación de un ArrayList en lenguaje Java
Pregunta
Tengo un ArrayList para este compromiso. He puesto instuctions de entrada demasiado, de modo que el usuario puede introducir una cadena, un entero, entonces una cadena (el primer nombre, la edad y el apellido).
necesito para ordenar la ArrayList por el apellido. El código que he entrado hasta el momento es todo bajo el método principal: -
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
Solución
Tome un vistazo a Comparable , Comparador , < 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 y 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());
}
}
}
Otros consejos
Esto no pretende ser ofensivo pero sugeriría que aprenda los conceptos básicos antes de pasar a Swing.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow