一个实现了Comparable接口的类在一个Collection(集合)里是可以排序的,而排序的规则是按照你实现的Comparable里的抽象方法compareTo(Object o) 方法来决定的。
我写了一个例子,自己看吧:
/*
* Created on 2006-1-8, by handpower
*/
package study.others;
import java.util.Arrays;
//实现Comparable接口,使该类的对象可排序
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 {
return -1;
}
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));
}
}
分享到:
相关推荐
Comparable 接口和 Comparator 使用示例 在 Java 编程语言中,比较和排序是非常常见的操作。Comparable 接口和 Comparator 是两种常用的比较和排序方式。在本文中,我们将通过实例代码,详细介绍 Comparable 接口和...
Comparator接口与Comparable接口的区别 Comparator接口与Comparable接口是Java语言中两个重要的接口,它们都是用于比较和排序自定义类的对象的大小的。虽然它们两个都是用于比较的接口,但是它们有着不同的实现方式...
1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...
java通过Comparable接口实现字符串比较大小排序的简单实例
这里我们将深入探讨Java 8 HashMap如何与Comparable接口结合使用,以及这背后的编程技术和设计原理。 首先,我们了解下Comparable接口。Comparable接口是Java中用于定义对象之间自然顺序的接口,它只有一个方法`...
在 Java 中,实现 Comparable 接口的类可以使用 Arrays.sort() 或 Collections.sort() 方法对对象列表进行排序。 在本文中,我们将详细介绍如何使用 Comparable 接口对 Java 对象进行排序,包括升序、降序和倒叙...
这意味着如果你有一个实现了Comparable接口的对象列表(如List),你可以直接使用Collections.sort()或者Arrays.sort()方法对这个列表进行排序。例如,String类就默认实现了Comparable接口,因此可以直接对字符串...
此外,通过Java的工具类`Collections`和`Arrays`,可以对实现了Comparable接口的对象列表或数组进行自动排序,如使用`Collections.sort()`和`Arrays.sort()`方法。 在Java中,一些预定义的类,如`Integer`、`Double...
这篇文章将为大家带来一个使用 Comparable 接口实现自定义排序的示例。 首先,让我们来了解一下 Comparable 接口。Comparable 接口是 Java 中的一个接口,它定义了一个compareTo 方法,该方法用于比较两个对象的...
值得注意的是,Comparable接口的排序是全局的,也就是说,所有实现了Comparable接口的对象都将遵循同一个排序规则。而Comparator接口的排序是局部的,即在每个特定的排序操作中,可以根据需要创建不同的Comparator...
本课程重点讲解了`TreeSet`如何实现`Comparable`接口以及如何自定义比较规则。 首先,我们来了解`TreeSet`的基本概念。`TreeSet`内部使用红黑树数据结构存储元素,这使得它的插入、删除和查找操作具有较高的效率,...
#### 二、Comparable接口解析 ##### 1. 概念介绍 `Comparable`接口位于`java.lang`包中,它定义了一个单一的方法`compareTo`。这个接口适用于那些具有自然顺序的对象。当一个类实现了`Comparable`接口时,意味着它...
1. Comparable接口详解 Comparable接口位于java.lang包中,它定义了一个单一的方法compareTo(Object o),用于比较当前对象与指定对象的顺序。当一个类实现Comparable接口时,表示该类的实例可以自然排序。例如,...
Java中的比较器主要涉及到两种接口:Comparable接口和Comparator接口,它们在处理对象排序时起着关键作用。 **Comparable接口** Comparable接口是Java.lang包下的一个接口,它只有一个方法:compareTo(T o)。当一个...
Comparable接口是Java中用于对象排序的关键接口,主要应用于需要自动排序的场景。当一个类实现了Comparable接口,意味着该类的对象具备内在的比较逻辑,可以直接进行比较。例如,我们可以创建一个Person类,让它实现...
#### 二、Comparable接口详解 `Comparable`接口是一种内置的比较机制,它允许一个类能够自我比较,即一个类自己实现了如何与其他同类型的对象进行比较的方法。当我们希望一个类能够按照某种规则进行排序时,就可以让...
**Comparable接口** Comparable接口位于`java.lang`包下,它是一个对象自比较的接口。任何类如果需要进行排序,可以实现Comparable接口。例如,String、Integer等内置类已经实现了Comparable接口,可以方便地进行...
例如,Java中的String、Integer等类都实现了Comparable接口,这使得我们可以直接使用这些对象进行自然顺序的比较。当我们需要按照特定规则对类实例进行排序时,只需要在自定义类中实现Comparable接口,并重写`...
当你有一个实现了Comparable接口的对象列表或数组时,可以直接使用Collections.sort()或Arrays.sort()对其进行排序。Comparable接口只有一个方法,即`compareTo(T o)`,用于比较当前对象与传入的对象o的大小关系。...