这篇文章主要介绍了Java Collections.sort()实现List排序的默认方法和自定义方法,需要的朋友可以参考下
1.java提供的默认list排序方法
主要代码:
List<String> list = new ArrayList();list.add("刘媛媛"); list.add("王硕"); list.add("李明"); list.add("刘迪"); list.add("刘布"); //升序 Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根据的汉字的拼音的字母排序的,而不是根据汉字一般的排序方法 for(int i=0;i<list.size();i++) { System.out.print(list.get(i)); } System.out.println(""); //降序 Collections.reverse(list);//不指定排序规则时,也是按照字母的来排序的 for(int i=0;i<list.size();i++) { System.out.print(list.get(i)); }
输出结果:
李明刘布刘迪刘媛媛王硕
王硕刘媛媛刘迪刘布李明
2.自定义的排序规则:
第一种是model类实现Comparable接口,重写重写int compareTo(Object o)方法
model类:
public class StudentDTO implements Comparable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public ObjType getType() { return type; } public void setAge(int age) { this.age= age; } @Override public int compareTo(Object o) { StudentDTO sdto = (StudentDTO)o; int otherAge = sdto.getAge(); // note: enum-type's comparation depend on types' list order of enum method // so, if compared property is enum-type ,then its comparationfollow ObjEnum.objType order return this.age.compareTo(otherAge); } } 主方法: public static void main(String[] args) { List<StudentDTO> 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); //按照age升序 22,23, Collections.reverse(studentList); //按照age降序 23,22 }
第二种是比较器类实现Comparator接口,重写int compare(Object o1, Object o2)方法;
model类:
public class StudentDTO implements Comparable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public ObjType getType() { return type; } public void setAge(int age) { this.age= age; } } 比较器类: class MyCompartor implements 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<StudentDTO> 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); //按照age降序 23,22 }
附注:
1.对于数组的排序方法如下:
String[] names = {"王林", "杨宝", "李镇", "刘迪", "刘波"}; Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序; System.out.println(Arrays.toString(names));
2.对于汉字的排序:可以尝试使用ICU4J会得到更好的结果,特别是姓为某些生僻字的时候,
用com.ibm.icu.text.Collator替换java.text.Collator,用com.ibm.icu.util.ULocale替换java.util.Locale
3.对于枚举类型的enum1.compareTo(enum2)是按照枚举类型值在定义时的先后顺序比较的,越后面的越大,
而不是按照值的字母先后顺序比较的。
Atas ialah kandungan terperinci Java中Collections.sort()如何实现List排序方法的示例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa