Maison > Java > javaDidacticiel > le corps du texte

java Collections.sort() implémente la méthode par défaut et la méthode personnalisée de tri de liste

巴扎黑
Libérer: 2017-06-26 11:13:51
original
1796 Les gens l'ont consulté

1. La méthode de tri de liste par défaut fournie par java

Code principal :

List Liu Yuanyuan ");

list.add("Wang Shuo");
list.add("Li Ming");
list.add("Liu Di");
list. add("Liu Bu");

//Ordre croissant
Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//Remarque : il est basé sur le pinyin des caractères chinois Triés par ordre alphabétique, plutôt que selon la méthode générale de tri des caractères chinois
for(int i=0;i {
System. out.print(list.get( i));
      }
      System.out.println("");

//Ordre décroissant
                                                                                                     en utilisant   en utilisant   en utilisant en utilisant   en utilisant   en utilisant         en utilisant en utilisant ‐ ‐ ‐ } ‐ }                                                        Trié par ordre alphabétique
for(int i=0;i

Résultat de sortie :

Li Ming Liu Bu Liu Di Liu Yuanyuan Wang Shuo

Wang Shuo Liu Yuanyuan Liu Di Liu Bu Li Ming


2. Règles de tri personnalisées :

La première est que la classe modèle implémente l'interface Comparable et remplace la méthode int compareTo(Object o)

Classe modèle :

classe publique StudentDTO implémente Comparable

{

private String name;
private int age;

public String getName()

{

Return name;
}

public void setName( Nom de la chaîne)

{

this.name = name;
}

public ObjType getType()

{

type de retour;
}

public void setAge(int age)

{

this.age= age;
}

@ Override

public int compareTo(Object o)

{

StudentDTO sdto = (StudentDTO)o;

int otherAge = sdto.getAge();

// remarque : la comparaison des types d'énumération dépend de l'ordre de la liste des types de la méthode d'énumération

/ / donc, si la propriété comparée est de type enum, alors sa comparaison suit l'ordre ObjEnum.objType

renvoie this.age(otherAge);

}
}
<🎜. > Méthode principale :

public static void main(String[] args)

{

List studentList = new ArrayList();


StudentDTO s1 = new StudentDTO ();

s.setName("yuanyuan");

s.setAge(22);

studentList.add(s1);

StudentDTO s1 = new StudentDTO ();

s.setName("lily");

            s.setAge( 23);

      studentList.add(s2);

      Collections.sort(studentList); //Par ordre croissant d'âge 22, 23, Collections.reverse(studentList) //Par ordre décroissant d'âge 23,22

>

La seconde est que la classe comparateur implémente l'interface Comparator et remplace la méthode int compare(Object o1, Object o2) ; class StudentDTO implémente Comparable

{

private String name;

private int age;

public String getName( ) {

return name;

}

     public void setName(String name)
    {
         this.name = name;
     }

     public ObjType getType()
     {
         type de retour ;
>

class MyCompartor implémente Comparator
{
     @Override
     public int compare(Object o1, Object o2)

    {

           StudentDTO sdto1= (StudentDTO )o1;

           StudentDTO sdto2= (StudentDTO )o2;


           return sdto1.getAge.compareTo(stdo2.getAge())

    }
}

           主方法:

public static void main(String[] args)

{

      List studentList = new ArrayList();

      StudentDTO s1 = new StudentDTO ();

      s.setName("yuanyuan");

      s.setAge(22);


      studentList.add(s1);

      StudentDTO s1 = new StudentDTO ();

      s.setName("lily");

      s.setAge (23);

      studentList.add(s2);

      MyComparetor mc = new MyComparetor();

      Collections.sort(studentList,mc);     //按照age升序 22,23,

      Collections.reverse(studentList,mc);    // 按照 Âge 降序 23,22

}

附注 :

1. 对于 数 组 的 排序 方法 如下 : :

String[] noms = {"王林",  "杨宝", "李镇", "刘迪", "刘波"};  

Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.

SIMPLIFIED_CHINESE

));//升序;   

System.out.println(Arrays.toString(names));      

2.

用com.ibm.icu.text. Collator替换java.text.Collator,用com.ibm.icu.util.ULocale替换java.util.Locale


3.在定义时的先后顺序比较的,越后面的越大,而不是按照值的字母先后顺序比较的。

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!