Java 集合排序

  • 使用Collections类的sort()方法
  • sort(List list)
    • 根据元素的自然顺序对置顶的列表按升序进行排序

Comparator接口

  • 强行对某个对象进行整体排序的比较函数
  • 可以将Comparator 传递sort 的方法
    • 集合排序 Collections.sort
    • 数组排序 Arrays。sort
  • int compare(T o1,T o2) 用来比较排序的两个参数
    • 如: o1 < o2 返回负整数
    • 如: o1 == o2 返回0
    • 如: o1 > o2 返回 正整数
  • boolean equals(Object obj) 指示某个其他对象是否 “等于” 此 Comparator
    • 此方法会被Object 方法中 equals 覆盖,不必重写

Comparable 接口 (java.lang)

  • 此接口强行对实现他的每个类的对象精选整体排序
  • 这种排序被称为类的自然排序,类的compareTo方法称为他的自然比较方法
  • 集合:通过调用Collections.sort 方法进行排序
  • 数组:通过调用Array.sort方法进行排序
  • int compare(T o1,T o2) 用来比较排序的两个参数
    • 如: o1 < o2 返回负整数
    • 如: o1 == o2 返回0
    • 如: o1 > o2 返回 正整数

Comparator 和Comparable 的区别

Comparator Comparable
位于java.util包 位于java.lang包
在要比较的类外部实现该接口 在要比较的类上实现该接口
调用sort方法时,要指定Comparator的实现类 调用sort方法时,只需指定集合名即可实现类

泛型

为啥使用泛型?

  • 在Java中增加泛型之前,泛型程序设计使用继承来实现
  • 没用泛型之前:
    • 需要强制转换
    • 可以向集合中添加任意类型的对象,存在风险
  • 用了泛型后
    • 不用进行强制类型转换
    • 避免运行时异常的安全隐患

泛型的使用

  • Java SE7及以后的版本中,构造方法中可以省略泛型类型
  • List list = new ArrayList<>();
  • 变量声明的类型必须匹配传递给实际对象的类型
posted @ 2021-01-22 10:58  流年りゅう  阅读(127)  评论(0)    收藏  举报