java中Comparable接口
所有可以排序的类,都实现了java.lang.Comparable接口。
Comparable中只有一个方法:
int conpareTo(T o)
返回0,表示this == obj
返回正数,表示this > obj
返回负数,表示this < obj
BasicContainer2.java
import java.util.*; public class BasicContainer2 { public static void main(String[] args) { List l1 = new LinkedList(); l1.add(new Name("Karl","M")); l1.add(new Name("Steven","Lee")); l1.add(new Name("John","O")); l1.add(new Name("Tom","M")); System.out.println(l1);//[Karl M, Steven Lee, John O, Tom M] //调用sort方法排序 //排序之前必须重写compaerTo比较大小,否则无效 Collections.sort(l1); System.out.println(l1);//[Steven Lee, Karl M, Tom M, John O] } } //实现Comparable接口 class Name implements Comparable { private String firstName,lastName; public Name(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public String toString() { return firstName + " " + lastName; } public boolean equals(Object obj) { if (obj instanceof Name) { Name name = (Name) obj; return (firstName.equals(name.firstName)) && (lastName.equals(name.lastName)); } return super.equals(obj); } public int hashCode() { return firstName.hashCode(); } //改写Comparable的compareTo方法 public int compareTo(Object o) { Name n = (Name)o; //调用String类的compareTo方法,比较大小 int lastCmp = lastName.compareTo(n.lastName); //lastCmp,首先按照姓(lastName)排列,然后按照名(fisrtName)排列 return (lastCmp!=0 ? lastCmp : firstName.compareTo(n.firstName)); } }
F:\java>javac BasicContainer2.java 注: BasicContainer2.java使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 F:\java>java BasicContainer2 [Karl M, Steven Lee, John O, Tom M] [Steven Lee, Karl M, Tom M, John O] F:\java>
相关推荐
对于自定义类,如`Person`,如果想要支持排序,你需要在`Person`类中实现Comparable接口,并重写`compareTo(Person another)`方法,根据类的属性(如姓名、年龄)来定义比较规则。 而Comparator接口则不同,它不在...
1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...
Comparable 接口是 Java 中的一个接口,它提供了一个通用的比较机制,允许对象之间进行比较。实现 Comparable 接口的类可以使用 Arrays.sort() 方法对其对象数组进行排序。 在上面的示例代码中,我们定义了一个 ...
Java 中的 Comparable 接口是一个非常重要的接口,它提供了一种排序的机制,允许开发者自定义对象的排序规则。在 Java 中,实现 Comparable 接口的类可以使用 Arrays.sort() 或 Collections.sort() 方法对对象列表...
Comparator接口与Comparable接口是Java语言中两个重要的接口,它们都是用于比较和排序自定义类的对象的大小的。虽然它们两个都是用于比较的接口,但是它们有着不同的实现方式和应用场景。 相同之处:Comparator接口...
Comparable接口位于java.lang包中,它只有一个方法:compareTo(Object o)。任何实现了Comparable接口的类,其实例都可以进行自然排序。自然排序指的是根据类的业务逻辑定义的排序规则。例如,String类就实现了...
例如,Java中的String、Integer等类都实现了Comparable接口,这使得我们可以直接使用这些对象进行自然顺序的比较。当我们需要按照特定规则对类实例进行排序时,只需要在自定义类中实现Comparable接口,并重写`...
Comparable接口是Java中用于定义对象之间自然顺序的接口,它只有一个方法`compareTo(T o)`,用于比较当前对象与指定对象的大小关系。当一个类实现了Comparable接口,那么它的实例就可以进行排序,比如在集合框架中...
Comparable 接口是 Java 中的一个接口,它定义了一个compareTo 方法,该方法用于比较两个对象的大小。该接口通常用于实现自定义排序的需求。 在我们的示例中,我们定义了一个 Student 类,该类实现了 Comparable ...
java通过Comparable接口实现字符串比较大小排序的简单实例
- Java中Comparable接口用于定义对象之间的自然排序关系。 4. Java类和接口: - Java接口是一系列方法的声明,可以被类实现(implement)。接口中通常不包含方法的实现。 - Java类可以实现一个或多个接口,通过...
在Java编程语言中,排序是常见的操作,而`Comparable`和`Comparator`接口则是实现对象排序的两种主要方式。这篇文章将深入探讨这两种实现方式及其在实际编程中的应用。 首先,`Comparable`接口位于`java.lang`包下...
* 一个类实现了Comparable接口,就意味着“该类本身支持排序”,它可以直接通过Arrays.sort() 或 Collections.sort()进行排序。 * (02) "Comparator" * 它是一个比较器接口,包括两个函数:compare() 和 equals...
例如,Java中的String、Integer等内置类都实现了Comparable接口,可以方便地进行比较和排序。当你有一个实现了Comparable接口的对象列表或数组时,可以直接使用Collections.sort()或Arrays.sort()对其进行排序。...
在Java编程语言中,排序是数据处理中一个非常常见的需求,而`Comparator`和`Comparable`接口则是实现排序的关键工具。这两个接口都是用于比较对象,但它们的应用场景和使用方式有所不同。 首先,`Comparable`接口是...
当用户触发某个事件时,会调用监听器接口中定义的方法。这种方式提高了代码的可读性和可复用性。 此外,Java标准库中的`java.util.Comparator`和`java.lang.Comparable`接口是两个常见的示例。`Comparator`用于比较...
Java中的比较器主要涉及到两种接口:Comparable接口和Comparator接口,它们在处理对象排序时起着关键作用。 **Comparable接口** Comparable接口是Java.lang包下的一个接口,它只有一个方法:compareTo(T o)。当一个...
`Comparable`接口是Java中一个重要的接口,它定义了一个`compareTo()`方法。任何类如果实现了`Comparable`接口,就表明该类的实例可以进行比较。例如,`String`类已经实现了`Comparable`,所以我们可以直接比较两个...
在 Java 中,Comparator 和 Comparable 是两个非常重要的接口,它们用于对象的排序操作。这两个接口都是在 java.util 包中定义的,主要用于定制排序规则。 **一、Comparator 接口** Comparator 接口允许我们创建...