//一个实现了Comparable接口的类在一个Collection(集合)里是可以排序的,
//而排序的规则是按照你实现的Comparable里的抽象方法compareTo(Object o) 方法来决定的。
import java.util.Arrays;
//实现Comparable接口,使该类的对象可排序
@SuppressWarnings("unchecked")
public class TestComparable implements Comparable {
// 该类的属性i
private double i = Math.random();
// 实现Comparable接口的抽象方法,定义排序规则
public int compareTo(Object o) {
// 定义排序规则: TestComparable对象里的属性i大的则排序时比较"大"(排序靠后)
if (o instanceof TestComparable) {
if (i > ((TestComparable) o).i) {
return 1;
} else if(i < ((TestComparable) o).i){
return -1;
} else{
return 0;
}
} else {
// 非TestComparable对象与之比较,则抛出异常
throw new ClassCastException("Can't compare");
}
}
// 重载toString方法定义输出
public String toString() {
return "" + i;
}
// 测试
public static void main(String[] args) {
// 建立一个数组, 元素为3个TestComparable对象
TestComparable[] c = new TestComparable[] { new TestComparable(),
new TestComparable(), new TestComparable() };
// 排序前
System.out.println(Arrays.asList(c));
// 排序
Arrays.sort(c);
// 排序后
System.out.println(Arrays.asList(c));
}
}
分享到:
相关推荐
1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...
本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧
主要介绍了java 实现Comparable接口排序,升序、降序、倒叙,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
java通过Comparable接口实现字符串比较大小排序的简单实例
通过简单的例子初步了解Comparable和Comparator的使用,注释很详细
下面小编就为大家带来一篇java中实现Comparable接口实现自定义排序的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java8HashMap键与Comparable接口编程开发技术共3页.pdf.zip
文章目录简介ComparableComparator举个例子 java中Comparable和Comparator的区别 ...实际上Comparable接口只定义了一个方法: public int compareTo(T o); 实现这个接口的类都需要实现compareTo方法,表示两个
主要介绍了详解Java中Comparable和Comparator接口的区别的相关资料,希望通过本文大家能彻底掌握这部分内容,需要的朋友可以参考下
Comparable和Comparator接口都可用作普通意义上对象间的比大小,但两个接口在实例化方面的用法不尽相同,接下来我们就来详细对比Java中的Comparable排序接口和Comparator比较器接口
本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明
本篇文章是对java比较器Comparable接口与Comaprator接口进行了详细的分析介绍,需要的朋友参考下
【IT十八掌徐培成】Java基础第12天-02.TreeSet实现与Comparable接口.zip
他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Person{ String name; int age }. 当我们有这么一个personList,里面包含了person1, person2, ...
Java基础知识点,内容比较全面。 目录: 1.1 Java中的引用概念 ...1.11 Java中的JNDI (Java命名与目录接口) 1.12 Java事件处理机制与“恋爱关系” 1.13 Java代码优化编程 1.14 Java数组浅析 。。。。。。
实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。 此 接口只有一个方法...
主要介绍了Java 比较接口comparable与comparator区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这是java的comparable接口和comparator接口的例子
主要介绍了Java Comparable及Comparator接口区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法 我们将像创建Java中的任何ArrayList一样创建SortedList: SortedList sortedlist = new SortedList(comparator); ...