J'ai une liste de objects
que je veux trier sur la base de name
. J'ai fait le codage où il est trié sur la base de name
mais j'ai une exigence légèrement différente.Java: Trier une liste d'objets en utilisant le comparateur avec le deuxième mot de la propriété
Les noms sont pour l'exemple que j'ai actuellement triés en utilisant le code ci-dessous:
Bull AMP
Cat DEF
Dog AMP
Frog STR
Zebra DEF
Mais je veux le nom trié sur la base du deuxième mot dans le nom. Fondamentalement, le list
devrait être quelque chose comme ceci:
Bull AMP
Dog AMP
Cat DEF
Zebra DEF
Frog STR
Ci-dessous mon code:
classe de l'objet:
public class AnimalData implements Serializable
{
private static final long serialVersionUID = 3952396152688462601L;
public String name;
public long age;
private String animal;
private String animalParts;
private String animalType;
}
classe Comparator
public class AnimalDataComparer implements Comparator<AnimalData>
{
@Override
public int compare(final AnimalData object1, final AnimalData object2)
{
return object1.getName().compareTo(object2.getName());
}
}
tri à l'aide de collections
private List<AnimalData> AnimalDataList;
Collections.sort(AnimalDataList, AnimalDataComparer);
Votre méthode equals doit aussi représenter ce comportement. –
ce qui est AMP, DEF etc. pour un champ ?? –
ou sont ces suffixes partie du champ Nom de la chaîne? –