[JAVA]有关Java中Arrays.sort()的用法
2016-04-02 16:55
453 查看
平常,作为静态类Arrays中的静态方法sort()经常被我们使用。但是你知道怎么控制它排序按照正序还是逆序呢?
其实,可以通过使用Comparable接口//Comparator接口,实现compareTo() / /compare()方法来调整正序还是逆序。
代码如下:
首先创建一个StudentCoparable类使用Comparable接口,并实现方法compareTo();
然后我们开始测试数据,
此时,测试结果为:
可见是正序排序。
那如果想要逆序排序呢?其实很简单,只需要把compareTo中的
//换个位置
即可变为逆序排序。
其中,Comparator接口也是相同,只需修改compare中的返回值,就可以调整正逆序输出了!!
结论:Arrays中的sort()方法,是跟Comparable接口,Comparator接口有密切相关,如果将来想使用这两个接口和Arrays.sort()方法,值得注意一下。
其实,可以通过使用Comparable接口//Comparator接口,实现compareTo() / /compare()方法来调整正序还是逆序。
代码如下:
首先创建一个StudentCoparable类使用Comparable接口,并实现方法compareTo();
public class StudentComparable implements Comparable<StudentComparable>{ private String number; private String name; private int age; public int compareTo(StudentComparable student) { return Integer.parseInt(this.number)-Integer.parseInt(student.number); }
然后我们开始测试数据,
import java.util.Arrays; public class Test { public static void main(String[] args) { StudentComparable sc = new StudentComparable("10000", "lz", 18); StudentComparable sc1 = new StudentComparable("10001", "wx", 18); StudentComparable sc2 = new StudentComparable("10003", "zh", 18); StudentComparable sc3 = new StudentComparable("10002", "gd", 18); StudentComparable scs[] = new StudentComparable[]{sc,sc1,sc2,sc3}; Arrays.sort(scs);//正序排序 for (int i = 0; i < scs.length; i++) { System.out.println(scs[i].getNumber()+","+scs[i].getName()+","+scs[i].getAge()); } } }
此时,测试结果为:
可见是正序排序。
那如果想要逆序排序呢?其实很简单,只需要把compareTo中的
return Integer.parseInt(this.number)-Integer.parseInt(student.number);
//换个位置
return Integer.parseInt(student.number)-Integer.parseInt(this.number);
即可变为逆序排序。
其中,Comparator接口也是相同,只需修改compare中的返回值,就可以调整正逆序输出了!!
结论:Arrays中的sort()方法,是跟Comparable接口,Comparator接口有密切相关,如果将来想使用这两个接口和Arrays.sort()方法,值得注意一下。
相关文章推荐
- [core java学习笔记][第十一章异常断言日志调试]
- [core java学习笔记][第十一章异常断言日志调试]
- [core java学习笔记][第十章部署应用程序]
- [core java学习笔记][第十章部署应用程序]
- [core java学习笔记][第六章接口与内部类]
- [core java学习笔记][第五章继承]
- [core java学习笔记][第五章继承]
- [core java学习笔记][第六章接口与内部类]
- [core java学习笔记][第四章对象与类]
- [core java学习笔记][第四章对象与类]
- [core Java学习笔记][第一二三章基本语法]
- [core Java学习笔记][第一二三章基本语法]
- Java异常处理之try-catch-finally
- 统计文章单词[JAVA实现]-经典笔试题
- java事务
- Java——设计模式(装饰模式_IO)
- Java并发编程系列之六:stop()、resume()和suspend()
- 在Struts的jsp中使用<s: set> 和 Jstl的<c: set>
- 【细说Java】方法重载的简单介绍
- Struts2入门2