Java Collections的sort方法的使用
来源:互联网 发布:淘宝免费开店是真的吗 编辑:程序博客网 时间:2024/06/05 14:53
java.util.Collections.sort(List<T> list)方法的声明
public static <T extends Comparable<? super T>> void sort(List<T> list) { list.sort(null); }java.util.Collections.sort(List<T> list,Comparator<? super T> c)方法的声明
public static <T> void sort(List<T> list, Comparator<? super T> c) { list.sort(c); }
(1)如果是单一的数据存放在集合中,是可以直接排序的
private static void sort1() {List list = new ArrayList();list.add(9);list.add(29);list.add(100);list.add(3);// sort(集合)Collections.sort(list);for (Object object : list) {System.out.println(object);}}
(2)如果是对象数据存放在集合中,是不可以直接排序的!
(a)实体类必须要实现这个接口Comparable
/** * 实体类 必须实现这个接口Comparable * * @author Administrator * */public class Student implements Comparable<Student> {// 属性private String name;private int age;private String sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}/** * 带参数的构造方法 * * @param name * @param age * @param sex */public Student(String name, int age, String sex) {super();this.name = name;this.age = age;this.sex = sex;}/** * 无参的构造方法 */public Student() {super();}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", sex=" + sex + "]";}/** * 重写比较方法 * 按照此比较的东西从小到大排列 */@Overridepublic int compareTo(Student o) {if (this.age < o.age)return -1;if (this.age > o.age) {return 1;}return 0;}}
测试类:
private static void sort2() {// 1实例化对象Student stu1 = new Student("qq", 22, "F");Student stu2 = new Student("rose", 16, "M");Student stu3 = new Student("boy", 25, "F");Student stu4 = new Student("fei", 18, "M");List<Student> list1 = new ArrayList<Student>();list1.add(stu1);list1.add(stu2);list1.add(stu3);list1.add(stu4);// Exception in thread "main" java.lang.ClassCastException:// com.hlx.Student cannot be cast to java.lang.ComparableCollections.sort(list1);for (Student student : list1) {System.out.println(student);}}
效果:从小到大的顺序排序
(b)用Comparator接口
注意:实体类不需要实现这个接口
测试类:
private static void mysort1() {// 1实例化对象Student stu1 = new Student("qq", 22, "F");Student stu2 = new Student("rose", 16, "M");Student stu3 = new Student("boy", 25, "F");Student stu4 = new Student("fei", 18, "M");List<Student> list1 = new ArrayList<Student>();list1.add(stu1);list1.add(stu2);list1.add(stu3);list1.add(stu4);// 这样就可以实现自定义降序或者升序排列list了Collections.sort(list1, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {if (o1.getAge() > o2.getAge()) {return -1;} else if (o1.getAge() < o2.getAge()) {return 1;}return 0;}});for (Student student : list1) {System.out.println(student);}}
效果: 从大到小的顺序排序
0 0
- Java Collections的sort方法的使用
- java的Collections.sort()方法使用
- Collections.sort()方法的使用
- Collections.Sort()方法的使用方式
- java-Collections的sort集合排序方法
- Java - Collections.sort()的正确使用案例
- Java中Collections.sort()的使用!
- Collections的sort方法 排序
- Collections的sort方法 排序
- Collections的sort方法 排序
- Collections.sort()方法的应用
- java.util 下的Class Collections的两种sort方法使用
- java.util的Collections类的两种sort方法使用
- java Collections.sort()方法
- 使用Collections.sort()实现List正反排序的方法
- Collections.sort方法排序,以及java8前后版本的使用
- JAVA.util.Collections List的常用方法,sort()
- Java-Collections的sort方法对list进行排序
- 两个时间的比较(2017-04-18)
- 史上最全的Javascript面试题总结
- java中char和string之间简单转换
- LIRe图像检索:CEDD算法原理与源码分析
- java.util.concurrent 下的Semaphore CyclicBarrier CountDownLatch 分析使用
- Java Collections的sort方法的使用
- RTP/RTCP协议的补充(RTCP发送时间间隔)
- hdu 1054 Strategic Game 最小顶点覆盖(二分图最大匹配)
- (codeforces) The Great Mixing
- JS的正则表达式实例
- ViewPager刷新无效
- mysql存储过程语法及实例
- Struts2入门(一)
- 进程通信之pipe通信