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
Était-ce utile?

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