美文网首页
Java-集合对象比较

Java-集合对象比较

作者: hello_world_cxm | 来源:发表于2021-01-03 19:31 被阅读0次
    package Hello1;
    
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    
    public class Test11 {
        public static void main(String[] args) {
    //      String[] ss = {"cxxm","aegr","die","poit"};
    //      Arrays.sort(ss);  //有s的Arrays表明是一种工具类,所有方法都是静态的 不需要实例化 sort方法可以排序基本数据类型
    //      //也是可以排序对象,但是要继承comparable接口,自定义排序规则
    //      for(String s:ss) {
    //          System.out.println(s);
    //      }
            Student[] xx = {  //定义一个对象数组
                new Student("cxm",34),
                new Student("axm",36),
                new Student("ssm",32),
                new Student("kxm",31),
            };
            List<Student> LL= Arrays.asList(xx);
            Collections.sort(LL);
            for(Student ss: xx) {
                System.out.println(ss.toString());
            }
        }
    }
    class Student implements Comparable<Student>{ 
        //Student实现Comparable接口,但是如果是想按照年龄来排序的话,就会频繁地更改了Student内的代码,非常不灵活
        //解决思路:实例化一个比较器,比较逻辑就在比较器内定义,然后collections.sort(LL,c1)就传入一个比较器对象 c1是比较器
        //注意一旦传入了比较器对象,那么比较逻辑就会用c1里面的
        public String name;
        public int age;
        public Student(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        @Override
        public int compareTo(Student o) {
            //System.out.println("this age"+this.age);
            //Comparable 有个compareto的方法,实现类必须实现
            //return this.age-o.age; //compareTo最后返回的是负正整数的,负数的排行前面
            //return this.age.compareTo(o.age);  报错:无法在原始类型int上调用compareTo(int)
            return this.name.compareTo(o.name); //String本身实现了compareTo方法
        }
        @Override
        public String toString() {
            return "Student [name=" + name + ", age=" + age + "]";
        }
        
    }
    
    

    相关文章

      网友评论

          本文标题:Java-集合对象比较

          本文链接:https://www.haomeiwen.com/subject/islpoktx.html