首页 > Java资讯 > 什么是java对象排序

什么是java对象排序

更新时间:2020-09-21 17:34 浏览190次 来源:动力节点

在学习java编程时,排序可以说是常规的操作,在集合或者数组中,有时候需要对里面的元素,也就是对象进行排序,可能很多java零基础的小白们只知道对数据进行排序,对java对象排序还不是很了解,下面就来介绍一下什么是java对象排序,为什么要进行java对象排序。

Java对象排序就是依照对象的某个或者某几个属性从大到小或者从小到大进行排序,对象可以是一组数组中的元素。整数数组的排序对于理解各种排序方法的性能是很理想的例子,但是现实中却很难有这样的问题。通常,需要排序的对象是一个具有许多域的Object,这些域中只有其中一些用于进行比较。

下面我们来考虑与电话号码本相关的条目的排序问题,第一步是识别电话本中单个条目的结构,它可能有如下所示的格式:

image.png

为了描述电话号码本中两个条目之间的关系,我们加入了compareTo方法(如下图中阴影里的域)。

image.png


来自俄勒冈州107次大会代表团的电话号码条目数组,根据电语号码(阴影表示)进行排序的前后。

当this 在逻辑上小于、等于或者大于other的时候,compareTo方法返回一个小于、等于或者大于0对照整数。现在就可以修改前面所介绍的任何一种排序方法来对这个电话号码条目数组进行排序:

image.png

image.png

对这个插入排序例程进行详细分析后,发现所有的“<”操作符都被替换成了对负的compare To返回值的检查。结果是,数组中的电话号码条目以电话号码的升序进行排列。

如果两个或者更多的人使用相同的分机号码,则最后条目的顺序取决于排序的稳定性。如果排序是稳定的,则排序后数组中具有相同分机号码的电话号码条目的相对顺序,与未排序之前它们的相对顺序是相同的。如果排序不是稳定的,则不能保证这一点。为了确保条目,比如说,根据分机号码进行升序排列,在共用分机号码的情况下,根据名字升序排列,可以使用下面compareTo程序:

image.png

当对象不能够完全有序的时候,可能很难使用compareTo方法正确地描述两个对象之间的关系。一个运动队可能总是严格小于另外一个运动队吗?一个集合总是包含另外一个集合吗?不是的。这些就是部分有序的例子,通常,大多数的类型都是完全有序的。

以上就是对java对象排序的一些介绍,相信通过上面的例子,大家知道了为什么要对java对象排序,这样对于后面的文章和java视频教程中学习怎样进行java对象排序奠定了基础。


热门课程推荐

全部班型支持免费试学

动力节点在线报名表(此信息已加密,请放心填写)

返回顶部