第一种是daftar中的对象实现Sebanding接口,如下:
/*** 根据order对User排序*/public class Pengguna mengimplementasi Comparable <user> { private String name; pesanan Integer pribadi; public String getName() { nama kembali; } public void setName(String nama) { this.name = nama; } public Integer getOrder() { mengembalikan pesanan; } public void setOrder(Pesanan bilangan bulat) { this.order = pesanan; } public int bandingkanTo(Pengguna arg0) { kembalikan this.getOrder().compareTo(arg0.getOrder()); }} </pengguna>
Jawabannya:
Tes kelas publik{ public static void main(String[] args) { Pengguna pengguna1 = Pengguna baru(); pengguna1.setName("a"); pengguna1.setOrder(1); Pengguna pengguna2 = Pengguna baru(); pengguna2.setName("b"); pengguna2.setOrder(2); Daftar <pengguna> daftar = Daftar Array baru <pengguna>(); //此处tambahkan pengguna2再tambahkan pengguna1 list.add(pengguna2); daftar.tambahkan(pengguna1); Koleksi.sort(daftar); for(Pengguna u : daftar){ System.out.println(u.getName()); } }} </pengguna> </pengguna>
输出结果如下
A
B
第二种方法是根据Collections.sort重载方法来实现,例如:
/*** 根据order对User排序*/public class User { //此处无需实现Comparable接口 private String name; pesanan Integer pribadi; public String getName() { nama kembali; } public void setName(String nama) { this.name = nama; } public Integer getOrder() { mengembalikan pesanan; } public void setOrder(Pesanan bilangan bulat) { this.order = pesanan; }}
主类中这样写即可:
Tes kelas publik{ public static void main(String[] args) { Pengguna pengguna1 = Pengguna baru(); pengguna1.setName("a"); pengguna1.setOrder(1); Pengguna pengguna2 = Pengguna baru(); pengguna2.setName("b"); pengguna2.setOrder(2); Daftar <pengguna> daftar = Daftar Array baru <pengguna>(); daftar.tambahkan(pengguna2); daftar.tambahkan(pengguna1); Koleksi.sort(daftar,Pembanding baru <pengguna> (){ public int bandingkan(Pengguna arg0, Pengguna arg1) { return arg0.getOrder().compareTo(arg1.getOrder()); } }); for(Pengguna u : daftar){ System.out.println(u.getName()); } }} </pengguna> </pengguna> </pengguna>
输出结果如下
A
B
bisnis, bisnis, bisnis, dan bisnis,后者灵活,可以临时指定排序项,但是代码不够简洁
多字段的场合:
Koleksi.sort(daftar,Pembanding baru <pengguna> (){ public int perbandingan(Pengguna arg0, Pengguna arg1) { // 第一次比较专业 int i = arg0.getOrder().compareTo(arg1.getOrder()); // menggunakan if(i==0){// int j=arg0.getXXX().compareTo(arg1.getXXX());// if(j==0){ return arg0.getCCC().compareTo(arg1.getCCC()); return j; </pengguna>
Koleksi 以上内容就是小编给大家介绍有关用Java集合中的s.sort方法如何对list排序(两种方法),希望对大家有所帮助。