zoukankan      html  css  js  c++  java
  • Java的Collection.sort()方法

       Java中的Collection.sort()方法能使用泛型对对象的变量进行排序,下面是两种方法。

    文件名:student.java

    import java.util.*;
    
    import com.sun.org.apache.xerces.internal.dom.ProcessingInstructionImpl;
    import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Collections;
    
    public class Student implements Comparable<Student>{
    
        private int id;
        private String name;
        
        public Student(String setname,int id) {
            this.id=id;
            this.name=setname;
        }
        
        
        public int getId() {
            return id;
        }
    
    
    
    
        public void setId(int id) {
            this.id = id;
        }
    
    
    
    
        public String getName() {
            return name;
        }
    
    
    
    
        public void setName(String name) {
            this.name = name;
        }
    
    
    
    
        @Override
        public int compareTo(Student stu) {
        /*    重写compareTo方法1 Compare排序接口
         * id升序排序
            if(this.id>stu.id) {
                return 1;
            }
            else if (this.id<stu.id) {
                return -1;
            }
            else {
                return 0;
            }
            或者return this.getId-stu.getId;
            */
            
            //名字升序排序
            return this.getName().compareTo(stu.getName());
        }
        
    
    }

      这个文件主要是定义一个学生类,如果使用Compare排序接口算法,就要在实体类中重写compare方法,能实现对name和id进行升序和降序排序。

    文件名:drive.java

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    
    
    public class drive {
        public static void main(String[] args){
            ArrayList<Student> studentlist=new ArrayList<Student>();
            Student stu1  = new Student("zhangsan",12);
            Student stu2  = new Student("lisi",4);
            Student stu3 = new Student("wangwu", 5);
            studentlist.add(stu1);
            studentlist.add(stu2);
            studentlist.add(stu3);
            Collections.sort(studentlist);
            System.out.println(studentlist.get(0).getName());
            System.out.println(studentlist.get(1).getName());
            System.out.println(studentlist.get(2).getName());
            
            
            //方法2,compare比较器接口
            ArrayList<Student> studentlist2=new ArrayList<Student>();
            Student stu4=new Student("Tom", 13);
            Student stu5=new Student("Susan", 4);
            Student stu6=new Student("Puse", 41);
            studentlist2.add(stu4);
            studentlist2.add(stu5);
            studentlist2.add(stu6);
            Collections.sort(studentlist2, new Comparator<Student>() {
                public int compare(Student a,Student b) {
                    //return a.getId()-b.getId();升序排序
                    //降序排序
                    return b.getId()-a.getId();
                }
            });
                System.out.println(studentlist2.get(0).getId());
                System.out.println(studentlist2.get(1).getId());
                System.out.println(studentlist2.get(2).getId());
    
        }
    }

      这里使用了方法2的compare比较器接口,可以在main函数中进行排序,运行结果如下

      如图,实现了排序

  • 相关阅读:
    深入浅出JSONP--解决ajax跨域问题
    Apache与Tomcat的区别
    项目终于接近尾声了
    交互设计[小插曲]--网站UI配色
    使用 Jasmine 进行测试驱动的 JavaScript 开发
    javascript单元测试
    MySQL查询当前数据库中所有记录不为空的表
    cannot be resolved to a type的错误
    oracle 表空数据导出dmp ,空表导出失败
    Iterable<E> Iterator<E>
  • 原文地址:https://www.cnblogs.com/mugglean/p/8784227.html
Copyright © 2011-2022 走看看