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
¿Fue útil?

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
scroll top