Une façon possible d'y arriver est:
Créer une class
et ajouter le nécessaire properties
à elle. Ensuite, utilisez Comparator
pour trier en fonction des besoins.
J'ai donné exemple de la façon de trier sur id
et name
base de la classe Student
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id=id;
this.name=name;
}
@Override
public String toString() {
return this.id+"-"+this.name;
}
public String getName(){
return this.name;
}
public static void main(String[] args) {
List<Student> stu = new ArrayList<>();
stu.add(new Student(4,"Alaska"));
stu.add(new Student(5,"Barlin"));
stu.add(new Student(9,"America"));
stu.add(new Student(2,"India"));
Comparator<Student> byId = (Student s1,Student s2)->(s1.id)-(s2.id); //java 8 lambda expression
stu.sort(byId);
System.out.println(stu);
//Way-1 -java 8 lambda expression
Comparator<Student> byName = (Student s1,Student s2)->s1.getName().compareTo(s2.getName());
//Way-2 - java 8 method reference
//Comparator<Student> byName = Comparator.comparing(Student::getName);
stu.sort(byName);
System.out.println(stu);
}
}
[2-Inde, 4-Alaska, 5-Barlin, 9-Unis]
[4-Alaska, 9-Amérique, 5 Barlin, 2-Inde]
utilisez TreeMap ou HashMap au lieu de Arraylist il fournit la facilité que vous voulez –
Redesign it. Avoir une classe qui a des noms _and_ ids, et faire une ArrayList de _those_. –
n'a aucun sens - comment la deuxième liste est-elle liée à la première? Vous devriez tenir les deux dans une structure/classe et trier sur id/name comme vous voulez. Implémenter Comparable/Comparateur pour le tri. – Gaurav