`
jackroomage
  • 浏览: 1218044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Comparable<T> 和Comparator 的用法区别?

 
阅读更多

答:1、Comparable<T>是一个借口里面只有一个方法comparaTo()比较此对象与指定对象的顺序。
       如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
       做题的一般过程是,把创建对象赋的值放在ArrayList里面。再通过Collections类的sort()方法
       排序;然后输出就可以了。(普通类要实现Comparable<T>借口里面的comparaTo()方法,不然的话)不能
       用Collections类的sort()方法。


   
    2、Comparator<T>是一个接口里面有两个方法public int compare(Object arg0, Object arg1)和boolean equals(Object obj)继承 Comparator必须实现compare方法,用compareTo比较属性值,把对象的值保存在ArrayList中;同时用 Collections.sort(List<T> list,Comparator<? super T> c)去比较。最后输出即可。

分享到:
评论

相关推荐

    collections方法集合

    List&lt;String&gt; flavors = new ArrayList&lt;&gt;(); Collections.addAll(flavors, "Peaches'nPlutonium", "RockyRacoon"); ``` 此例中,`flavors`列表将被填充上指定的字符串元素。 #### 2. `asLifoQueue` 此方法将`...

    java类排序,很实用

    2. **提供 `Comparator&lt;T&gt;` 实例**:如果 `Student` 类没有实现 `Comparable&lt;T&gt;` 接口,或者你想要根据不同的标准进行排序,你可以提供一个实现了 `Comparator&lt;T&gt;` 接口的匿名类实例。例如,如果你要根据年龄而非...

    Android里List时间升序排序

    这是一个通用的方法,可以对任何实现了`Comparable&lt;T&gt;`接口的集合进行排序。在我们的例子中,`String`类已经实现了`Comparable&lt;String&gt;`接口,因此我们可以直接对`List&lt;String&gt;`进行排序。然而,`Collections.sort()...

    Java中Comparable和Comparator 2种实现方式学习

    在Java编程语言中,排序是常见的操作,而`Comparable`和`Comparator`接口则是实现对象排序的两种主要方式。这篇文章将深入探讨这两种实现方式及其在实际编程中的应用。 首先,`Comparable`接口位于`java.lang`包下...

    collection接口的静态方法

    如果`List`中的元素没有实现`Comparable`接口,或者你需要自定义排序规则,可以使用`Collections.sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c)`方法。此方法接受一个`Comparator`参数,`Comparator`是一个接口,...

    java中Comparable和Comparator的区别

    在Java编程语言中,Comparable和Comparator接口是两个重要的概念,它们都用于对象的排序,但有着不同的使用场景和特点。本文将深入探讨这两个接口的区别,以及它们在实际开发中的应用。 首先,我们来了解一下...

    559.557.JAVA基础教程_集合-Collections工具类常用方法的测试(559).rar

    `sort(List&lt;T&gt; list)`方法使用自然顺序对指定列表进行排序,如果列表元素是自定义类型,那么需要实现Comparable接口来定义排序规则。如果需要自定义排序顺序,可以使用`Collections.sort(List&lt;T&gt; list, Comparator&lt;?...

    Java泛型实例

    泛型类是在类定义中使用尖括号`&lt;&gt;`来声明的,它允许我们创建可以处理多种数据类型的对象。例如,一个简单的泛型栈类可能如下所示: ```java public class GenericStack&lt;T&gt; { private T[] elements; private int ...

    java泛型的使用

    7. 多重边界:你可以指定一个类型参数实现多个接口,如`public interface MyInterface&lt;T extends Comparable&lt;T&gt; & Serializable&gt;`,这意味着`T`必须同时实现`Comparable&lt;T&gt;`和`Serializable`接口。 8. 泛型擦除:...

    集合工具类Collections的基本应用

    - `sort(List&lt;T&gt; list)`: 这个方法用于对List接口的实现类对象进行原地排序,要求List中的元素必须实现Comparable接口或者在调用时传入自定义的Comparator。例如,对整型ArrayList进行升序排序可以使用`Collections...

    名企java笔试编程题(最经典、最全面的java面试时的编程题)

    例如,在实现排序算法时,可以将比较逻辑放入`compareTo()`方法(`Comparable&lt;T&gt;`)或`compare()`方法(`Comparator&lt;T&gt;`)中。 4. 插入排序: 插入排序是一种简单的排序算法,其工作原理是将未排序的元素逐个插入到...

    Collections集合工具类排序.docx

    总的来说,Collections工具类的`sort()`方法是Java集合排序的核心,结合Comparable接口和Comparator接口,可以满足各种复杂排序需求。无论是基本类型还是自定义类型,都能通过合理的比较策略实现有效的排序。在实际...

    Collections Framework中的算法(之一)――综述

    - **装饰模式的应用**:`Collections` 类还提供了创建不可变集合、同步集合以及单例集合的方法,如 `unmodifiableList(List&lt;T&gt; list)`、`synchronizedList(List&lt;T&gt; list)` 和 `singletonList(T o)`,这些方法都是...

    java中如何实现对类的对象进行排序

    今天,我们将讨论两种常见的排序方法:通过实现Comparable&lt;T&gt;接口和使用Comparator&lt;T&gt;接口。 通过实现Comparable&lt;T&gt;接口 第一种方法是让类实现Comparable&lt;T&gt;接口。Comparable&lt;T&gt;接口是一个泛型接口,定义了...

    java排序Comparator和Comparable

    在Java编程语言中,排序是数据处理中一个非常常见的需求,而`Comparator`和`Comparable`接口则是实现排序的关键工具。这两个接口都是用于比较对象,但它们的应用场景和使用方式有所不同。 首先,`Comparable`接口是...

    JDK1.5泛型.rar

    `,另一种是隐式类型推断,如`Box&lt;String&gt; box = new Box&lt;&gt;();`(Java7及以后版本)。 12. **协变和逆变**:在泛型中,类型参数的位置决定了其是否具有协变或逆变性质。例如,`List&lt;Number&gt;`是`List&lt;Object&gt;`的子...

    comparable和compartor区别

    ### Java中的Comparable与Comparator详解 #### 一、引言 在Java编程中,当我们需要对对象进行排序时,经常会用到两种方式:一种是通过实现`Comparable`接口,另一种则是通过实现`Comparator`接口。这两种方式各有...

    java的Comparator和Comparable.docx

    Comparator 接口有一个核心方法 `compare(T o1, T o2)`,这个方法返回一个整数值,表示 o1 和 o2 之间的相对顺序。如果 o1 应该排在 o2 之前,返回负整数;如果两者相等,返回零;如果 o1 应该排在 o2 之后,返回正...

    java 通用比较类

    Collections.sort(entities, new GenericComparator&lt;&gt;("name")); ``` 5. **扩展通用比较器** 如果你需要更复杂的比较逻辑,比如基于多个属性或自定义规则,可以扩展通用比较器。例如,可以添加更多的构造函数来...

Global site tag (gtag.js) - Google Analytics