API简介

排序
在编写java程序的时候,我们经常都会遇到排序的问题,没有深入学习过java的人一般会选择两种做法,第一种是在网上找一段代码改改后就用在自己的程序中,第二种是自己花时间写一个。当然对第一种方法如果你看懂了网上找的代码还有点点收获,对第二种方法则可以证明你是一个认真的人,对一些排序算法有比较深刻的研究,但是倘若你写的不是很精妙的排序算法,而只是写一个普通的选择、冒泡、插入亦或是更高级一点的堆排、快排、归并之类的算法,在你对这些算法已经比较熟悉的情况下,这样自己写是没有多大意义的,相反会浪费不少时间。事实上java语言已经为它的使用者考虑到了排序的需求,提供了集合排序的函数调用,如下所示:

java.util.Arrays.sort(int[])
java.util.Arrays.sort(int[], int, int)
java.util.Arrays.sort(T[], int, int, java.util.Comparator)
java.util.Arrays.sort(T[], java.util.Comparator)
java.util.Collections.sort(java.util.List)
java.util.Collections.sort(java.util.List, java.util.Comparator)

上面所列的是可能会经常用到的函数接口,还有其它一些重载的函数,感兴趣的可以可以查一查api说明文档。下面是一个例子:

//集合排序
public class ArraySort {
//对整数集合进行排序
public void sortIntArray() {
int[] array = new int[] { 8, 5, 9, 0, 6, 3, 4, 7, 2, 1 };
System.out.println('整数排序前');
for (int i = 0; i < array.length; i ) {System.out.print(array[i] ' ');
}
System.out.println();
Arrays.sort(array);
System.out.println('整数排序后');
for (int i = 0; i < array.length; i ) {
System.out.print(array[i] ' ');
}
System.out.println();
}//对字符串集合进行排序
public void sortStringArray() {
String[] array = new String[] { 'a', 'c', 'e', 'd', 'b' };
System.out.println('字符串排序前');
for (int i = 0; i < array.length; i ) {
System.out.print(array[i] ' ');
}
System.out.println();
System.out.println('字符串排序后');
Arrays.sort(array);for (int i = 0; i < array.length; i ) {
System.out.print(array[i] ' ');
}
System.out.println();
}
//对对象集合进行排序
public void sortObjectArray() {
Dog o1 = new Dog('dog1', 1);
Dog o2 = new Dog('dog2', 4);
Dog o3 = new Dog('dog3', 5);Dog o4 = new Dog('dog4', 2);
Dog o5 = new Dog('dog5', 3);
Dog[] dogs = new Dog[] { o1, o2, o3, o4, o5 };
System.out.println('对象排序前');
for (int i = 0; i < dogs.length; i ) {
Dog dog = dogs[i];
System.out.print(dog.getName() ':' dog.getWeight() ' ');
}System.out.println();
Arrays.sort(dogs, new ByWeightComparator());
System.out.println('对象排序后');
for (int i = 0; i < dogs.length; i ) {
Dog dog = dogs[i];
System.out.print(dog.getName() ':' dog.getWeight() ' ');
}
System.out.println();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值