美文网首页
Java-利用比较器解耦后

Java-利用比较器解耦后

作者: hello_world_cxm | 来源:发表于2021-01-03 20:02 被阅读0次
package Hello1;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/*
 * 需求:实现名字 年龄灵活排序,不用修改Student里的代码
 * */
public class Test11 {
    public static void main(String[] args) {
        Student[] xx = {  //定义一个对象数组
            new Student("cxm",34),
            new Student("axm",36),
            new Student("ssm",32),
            new Student("kxm",31),
        };
        //Comparator是接口,所以后面要用匿名内部类来实现Comparator所定义的方法
        //因为是比较器,所以你得告诉构造器,你要比较的对象类型是什么,所以得用泛型
        Comparator<Student> c1 = new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //o1 和 o2是学生对象,
                //返回正负整数 
                return o1.age - o2.age;
            }
        };
        Comparator<Student> c2 = new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.name.compareTo(o2.name);  //compareTo是Comparable的
            }
            
        };
        //根据name来实现排序
        List<Student> LL= Arrays.asList(xx);
        Collections.sort(LL,c2);
        for(Student ss: xx) {
            System.out.println(ss.toString());
        }
    }
}
class Student { 
    public String name;
    public int age;
    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [name=" + this.name + ", age=" + this.age + "]";  //this当前类
    }
    
}

相关文章

  • Java-利用比较器解耦后

  • iOS三方框架之 - AFNetworking的Https认证流

    对AFNetworking进行解耦AFNetworking解耦后可以分为以下几个模块:1. NSURLSessio...

  • 框架模式总结

    MVC:学习简单但是解耦不够彻底 MVP:解耦更加彻底,学习起来也项目比较简单,但是代码相对比较繁琐 MVVM:代...

  • MVVM框架使用指南

    MVC:学习简单但是解耦不够彻底 MVP:解耦更加彻底,学习起来也相对比较简单,但是代码相对比较繁琐 MVVM:代...

  • iOS利用协议给控制器解耦

    写在最前 以下方案的思路来自于项目组的同事LEAF 现状 在iOS开发中,对于根据不同的事件跳转到不同的控制器这...

  • 解耦

    解耦 对于大型重构, 最有效的手段就是 解耦, 解耦的目的使实现代码高聚合、松耦合。 解耦为何如此...

  • 为什么使用消息队列

    为什么使用消息队列 消息队列的使用场景比较核心的有 3 个:解耦、异步、削峰。 解耦 A 系统发送数据到 BCD ...

  • RabbitMq整体简介(包括工作模式、消息应答、事务机制)

    一、优势与特性 RabbitMq的应用场景比较广泛,包括日志管理、应用解耦、流量削峰、异步处理。 其中都是利用了R...

  • 利用runtime反射机制解耦

    前言 本文参考了微信读书团队的文章,学习了runtime反射机制的强大。具体的demo工程 学习过程1 A和B想要...

  • 7.4 利用ConfigMap解耦配置

    应用配置的关键在于能够在多个环境中区分配置选项,将配置从应用程序源码中分离,可频繁变更配置值。如果将pod定义描述...

网友评论

      本文标题:Java-利用比较器解耦后

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