java集合框架类-排序

来源:互联网 发布:局域网mac扫描工具 编辑:程序博客网 时间:2024/06/05 17:15

对于排序程序我们在计算机课程中是经常见到的。各种排序算法也是基础课程之一。相信提到算法和计算机编程对于大多数同学小盆友们并不陌生了。我们在实验课或是课程设计中都会经常实现一个快速排序,冒泡排序,堆排序等各种排序算法。但是在平时的工作中,我们也经常会用到排序。大部分是比较简单的排序,当然我们可以自己写一个简单的排序算法,进行排序。但是如果这样做,可能会耗费很长时间,性能和效率以及代码正确性也可能有待证明。那么对于在工作中进行排序的情况有没有简单的方式呢?有!接下来让我们看一看java集合框架工具类的强大之处吧!

 

JAVA COLLECTIONS FRAMEWORK 

 

第一部分  排序

 

Java中对于可排序对象分了两种类型。一种是数组 T[]. 一种是链表 List<T>.

首先对于第一种进行讲解。

考虑如何排序数组中的数据。

例如  4,12,-1,3

如果采用一般方式,我们需要写一个排序算法然后进行排序。

但是如果采用Java集合框架呢?如下:

 

两行代码即可按照默认排序方式实现!

输出结果如下 -1,3,4,12

这里面的关键点在哪里呢?

Arrays.sort() 函数。

Arrays属于集合框架中的一个类。专门提供了对于数组的排序方法。

对于函数sort() 其声明方式如下:

 

 

 

对于基本类型排序方式很简单。当然Arrays仍然提供了各种工具方法支持各种有意思的操作。

对于自定义对象数组的排序,有一点必须明确。就是个对象之间的比较关系是如何决定的。

这样就引出了另一个sort函数定义:

对于第一个定义数组中的对象必须实现了Comparable接口

例如:

这个时候只需要调用如下代码

可完成排序

对于第二种方式

第一个参数是自定义数据类型(当然也可以是基本类型中的包装类了)第二个参数则就是我们在排序中的关键。

Comparator 是一个接口


我们需要实现之,如下

然后通过调用如下代码

即可完成升序排序。


对于第一种方式,如果项将排序编程降序,则不大好实现了(除非修改compareTo代码)。

我们可以采用第二种方式,在实现一个降序的接口如下:

然后:

即可完成降序排序。

 

对于如何具体复杂的完成了排序(JDK到底做了些什么工作呢?)我们下次继续探秘!

 

 

完整代码实例


原创粉丝点击