最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中如何實(shí)現(xiàn)對類的對象進(jìn)行排序

 更新時間:2020年02月18日 16:16:50   作者:V  
在本篇文章里小編給各位整理一篇關(guān)于java中如何實(shí)現(xiàn)對類的對象進(jìn)行排序知識點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

我們需要對類按照類中的某一個屬性(或者多個屬性)來對類的對象進(jìn)行排序,有兩種方法可以實(shí)現(xiàn),一種方法是類實(shí)現(xiàn)Comparable<T>接口,然后調(diào)用Collections.sort(List)方法進(jìn)行排序,另一種方法是類不實(shí)現(xiàn)Comparable<T>接口,而在排序時使用Collections.sort(List, Comparator<T>)方法,并實(shí)現(xiàn)其中的Comparator<T>接口。

先創(chuàng)建一個簡單的學(xué)生類:

public class Student {
 private String name;
 private int age;
 public Student() {}

 public Student(String name, int age) {
 this.name = name;
 this.age = age;
 }

 public String getName() {
 return name;
 }

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

 public int getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }
}

1、通過類實(shí)現(xiàn)Comparable<T>接口進(jìn)行排序

public class Student implements Comparable<Student>{

 private String name;
 private int age;
 public Student() {}

 public Student(String name, int age) {
 this.name = name;
 this.age = age;
 }

 public String getName() {
 return name;
 }

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

 public int getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }

 /**
 * 將對象按姓名字典序升序排序
 * @param o
 * @return
 */

 @Override

 public int compareTo(Student o) {
 return this.name.compareTo(o.getName());
 }

 @Override
 public String toString() {
 return "Student{" +
  "name='" + name + '\'' +
  ", age=" + age +
  '}';
 }

}

2、通過在Collections.sort()方法中實(shí)現(xiàn)Comparable<T>接口來實(shí)現(xiàn)排序

public class Client {

 public static void main(String[] args){
 List<Student> students = new ArrayList<>();
 students.add(new Student("a", 18));
 students.add(new Student("c", 19));
 students.add(new Student("b", 20));

 Collections.sort(students, new Comparator<Student>() {
  @Override
  public int compare(Student o1, Student o2) {
  return o1.getAge()>o2.getAge()? -1:(o1.getAge()==o2.getAge()? 0:1);
  }
 });

 for(Student student:students){
  System.out.println(student.toString());
 }
 }
}

以上就是java中實(shí)現(xiàn)對類的對象進(jìn)行排序的詳細(xì)內(nèi)容,感謝大家對腳本之家的支持。

相關(guān)文章

最新評論

榆中县| 安康市| 莱西市| 大渡口区| 临洮县| 雷州市| 土默特左旗| 镇江市| 朝阳区| 高要市| 乌苏市| 枞阳县| 张家口市| 江陵县| 循化| 留坝县| 高邮市| 尉犁县| 方正县| 江安县| 乌恰县| 土默特左旗| 黑水县| 个旧市| 延安市| 马边| 甘南县| 寻乌县| 西充县| 裕民县| 玉龙| 巴楚县| 冷水江市| 碌曲县| 康乐县| 亚东县| 游戏| 象州县| 剑河县| 土默特右旗| 蕉岭县|