• java-集合4


    浏览以下内容前,请点击并阅读 声明

    对象排序

      一个List对象中如果元素类型为String,则其按字母表顺序排序,而如果元素类型为Date,则按照年代排序,那如何判断元素的排序呢?String和Date对象都实现Comparable接口,Comparable接口的实现类会提供一个自然排序规则,能够实现对象的自动排序,下表列出一些重要的Comparable接口实现类:

     类自然排序规则
    Byte 带符号的数字大小
    Character 不带符号的数字大小
    Long 带符号的数字大小
    Integer 带符号的数字大小
    Short 带符号的数字大小
    Double 带符号的数字大小
    Float 带符号的数字大小
    BigInteger 带符号的数字大小
    BigDecimal 带符号的数字大小
    Boolean Boolean.FALSE < Boolean.TRUE(false排前,true排后)
    File 视系统而定,路径的字母顺序
    String 字母顺序
    Date 年代顺序
    CollationKey 视地区而定,字母顺序

      如果对一个列表对象使用Collection.sort(list)进行排序,而其元素没有实现Comparable,该方法将抛出ClassCastException,类似的,如果使用Collections.sort(list, comparator),而方法中的comparator不能对list中的元素进行相互比较,也会抛出ClassCastException异常,元素之间能进行比较又叫做双向比较,即使类不同有的也可以进行双向比较。

      Comparable接口

      Comparable接口包含一下方法:

    public interface Comparable<T> {
        public int compareTo(T o);
    }

      compareTo方法接收一个对象然后然后与自身进行比较,当参数对象大于,等于,或者小于自身时,将分别返回大于零,0和小于零的整数。

    Comparator接口

      如果不使用元素的自然排列方法进行排列,或者要对一些没有实现Comparable接口的对象进行排列,那么就要用到Comparator,Comparator仅含有一个方法:

    public interface Comparator<T> {
        int compare(T o1, T o2);
    }

      其中的compare方法有两个参数,即进行对比的两个对象,当第一个对象大于,等于或者小于第二个对象时分别返回负整数整数,0和正整数。

    -----

    未完待续。。。

  • 相关阅读:
    HTML特殊字符编码对照表
    前端研究CSS之文字与特殊符号元素结合的浏览器兼容性总结
    前端研究CSS之内联元素块级化/区域大小/文字和图标的位置
    鼠标滚动事件onscroll在firefox/chrome/Ie中执行次数的问题处理
    Js把对象数组列表转换成数组
    Windows 10简体中文最新预览版Build 9926
    常州陪购师一小时收费300元 1年穿坏20双高跟鞋
    [2015.01.23]办公工具类....不定时添加
    [2015.01.21]数据恢复类....不定时添加
    2015年高速免费通行时间确定 共计免费20天
  • 原文地址:https://www.cnblogs.com/justforcon/p/6051539.html
Copyright © 2020-2023  润新知