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

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

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

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

先創(chuàng)建一個(gè)簡(jiǎn)單的學(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、通過(guò)類實(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;
 }

 /**
 * 將對(duì)象按姓名字典序升序排序
 * @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、通過(guò)在Collections.sort()方法中實(shí)現(xiàn)Comparable<T>接口來(lái)實(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)對(duì)類的對(duì)象進(jìn)行排序的詳細(xì)內(nèi)容,感謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

上犹县| 台湾省| 务川| 新营市| 桓仁| 深泽县| 泸州市| 怀柔区| 鄂伦春自治旗| 荆州市| 内黄县| 米泉市| 高清| 炉霍县| 元谋县| 江永县| 红桥区| 沙湾县| 郓城县| 磴口县| 黄大仙区| 平山县| 邹城市| 秭归县| 鹤庆县| 长乐市| 巧家县| 房产| 莲花县| 千阳县| 菏泽市| 佛山市| 和平区| 建德市| 化州市| 临夏市| 无锡市| 惠安县| 岑巩县| 葫芦岛市| 天门市|