对于排序程序我们在计算机课程中是经常见到的。各种排序算法也是基础课程之一。相信提到算法和计算机编程对于大多数同学小盆友们并不陌生了。我们在实验课或是课程设计中都会经常实现一个快速排序,冒泡排序,堆排序等各种排序算法。但是在平时的工作中,我们也经常会用到排序。大部分是比较简单的排序,当然我们可以自己写一个简单的排序算法,进行排序。但是如果这样做,可能会耗费很长时间,性能和效率以及代码正确性也可能有待证明。那么对于在工作中进行排序的情况有没有简单的方式呢?有!接下来让我们看一看java集合框架工具类的强大之处吧!
JAVA COLLECTIONS FRAMEWORK
第一部分 排序
Java中对于可排序对象分了两种类型。一种是数组 T[]. 一种是链表 List<T>.
首先对于第一种进行讲解。
考虑如何排序数组中的数据。
例如 4,12,-1,3
如果采用一般方式,我们需要写一个排序算法然后进行排序。
但是如果采用Java集合框架呢?如下:
两行代码即可按照默认排序方式实现!
输出结果如下 -1,3,4,12
这里面的关键点在哪里呢?
Arrays.sort() 函数。
Arrays属于集合框架中的一个类。专门提供了对于数组的排序方法。
对于函数sort() 其声明方式如下:
对于基本类型排序方式很简单。当然Arrays仍然提供了各种工具方法支持各种有意思的操作。
对于自定义对象数组的排序,有一点必须明确。就是个对象之间的比较关系是如何决定的。
这样就引出了另一个sort函数定义:
和
对于第一个定义数组中的对象必须实现了Comparable接口
例如:
这个时候只需要调用如下代码
可完成排序
对于第二种方式
第一个参数是自定义数据类型(当然也可以是基本类型中的包装类了)第二个参数则就是我们在排序中的关键。
我们需要实现之,如下
然后通过调用如下代码
即可完成升序排序。
对于第一种方式,如果项将排序编程降序,则不大好实现了(除非修改compareTo代码)。
我们可以采用第二种方式,在实现一个降序的接口如下:
然后:
即可完成降序排序。
对于如何具体复杂的完成了排序(JDK到底做了些什么工作呢?)我们下次继续探秘!