深化理解Collections API[Java编程]
本文“深化理解Collections API[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
一个 List l 大概被做以下排序:
Collections.sort(l);
假如这个 list 由 String 元素所构成, 那么它将按词典排序法(按字母次序)举行排序; 假如它是由 Date 元素所构成, 那么它将按年代次序来排序.Java 怎么会知道该怎么做呢? 这一定是个魔术! 其实不然.实际上, String 和 Date 均实现了Comparable接口.Comparable 接口为一个类供应一个自然排序( natural ordering), 它答应那个类的对象被自动排序.下表列出了实现了Comparable 的JDK类:
类 自然排序
Byte 带标记的数字排序
Character 不带标记的数字排序
Long 带标记的数字排序
Integer 带标记的数字排序
Short 带标记的数字排序
Double 带标记的数字排序
Float 带标记的数字排序
BigInteger 带标记的数字排序
BigDecimal 带标记的数字排序
File 依靠系统的按途径名字母次序排序
String 按字母次序排序
Date 按年代次序排序
CollationKey 特定字符集按字母次序排序
假如你要为一个其元素没有实现 Comparable的列表排序,Collections.sort(list) 将扔出一个 ClassCastException.近似的,假如你要为一个其元素没有作彼此对比的列表举行排序, Collections.sort 将扔出一个 ClassCastException. 可以被彼此对比的元素被称作 mutually comparable(可彼此对比的).固然差别范例的元素有大概被彼此对比,但以上列出的任何JDK范例都不答应在类之间的对比 (inter-class comparison).
假如你只是要为可对比的元素的列表举行排序,或为它们成立排序的对象集, 则这就是你实际需求理解的全部有关 Comparable 接口的内容.假如你要实现你自己的 Comparable 范例,则下一节将会惹起你的爱好.
编写你自己的 Comparable 范例
Comparable 接口由一个单一的办法构成:
public interface Comparable {
public int compareTo(Object o);
}
以上是“深化理解Collections API[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |