iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >再JAVA中如何使用qsort对类进行排序?
  • 784
分享到

再JAVA中如何使用qsort对类进行排序?

java排序算法算法开发语言 2023-08-31 08:08:00 784人浏览 八月长安
摘要

目录 结论:  解析:  结论:  import java.util.Arrays;class Person implements Comparable{ public String name; public int age

目录

结论: 

解析: 


结论: 

import java.util.Arrays;class Person implements Comparable{    public String name;    public int age;    public Person(String name, int age) {        this.name = name;        this.age = age;    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", age=" + age +                '}';    }    @Override    public int compareTo(Person o) {        return this.age - o.age;    }}public class Main{    public static void main(String args[]){        Person[] arr = new Person[3];        arr[0] = new Person("zhang", 10);        arr[1] = new Person("wang", 13);        arr[2] = new Person("li", 11);        Arrays.sort(arr);        System.out.println(Arrays.toString(arr));    }}

 

解析: 

我们知道当我们定义了一个整型数组然后想对其进行排序时就可以使用 Arrays.toString() 方法对数组进行排序,系统会默认将其按照升序排列。

    public static void main(String args[]){        int[] arr = {2,6,3,0,5,2};        Arrays.sort(arr);        System.out.println(Arrays.toString(arr));    }

 

当我们需要对类进行排序应该怎么做呢?

首先我们先定义一个类:

class Person{    public String name;    public int age;    public Person(String name, int age) {        this.name = name;        this.age = age;    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", age=" + age +                '}';    }}

 我们现在有了这个类之后就可以对他进行排序了,此时我们可以先尝试直接对类进行排序操作:

    public static void main(String args[]){        Person[] arr = new Person[3];        arr[0] = new Person("zhang", 10);        arr[1] = new Person("wang", 13);        arr[2] = new Person("li", 11);        Arrays.sort(arr);        System.out.println(Arrays.toString(arr));    }

 虽然报错了但是我们从报错信息中可以找到这一块代码:

 从中我们可以清晰的看到它将我们的代排序类强制类型转换成了 Comparable 而我们的类根本就不能进行强制类型转换成Comparable从而引起了错误。

我们既然已经知道了哪里出现了错误那么改掉之后我们就可以实现使用 Arrays.toString() 方法来排序类。

此时我们先修改我们的类,使其实现 Comparable 接口:

紧接着再类中对 compareTo() 方法进行重写。(假如我们用年龄来排序 compareTo() 方法的返回值为:大于返回大于0的数;小于返回小于零的数;等于返回0

class Person implements Comparable{    public String name;    public int age;    public Person(String name, int age) {        this.name = name;        this.age = age;    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", age=" + age +                '}';    }    @Override    public int compareTo(Person o) {        return this.age - o.age;    }}

运行之后可以看到结果按照年龄升序排序。 

来源地址:https://blog.csdn.net/2302_76339343/article/details/132429661

--结束END--

本文标题: 再JAVA中如何使用qsort对类进行排序?

本文链接: https://www.lsjlt.com/news/384812.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作