`
clwbeyond
  • 浏览: 43310 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java 数组元素比较 Comparable 和 Comparator

阅读更多

Java中有两种方式来实现,一种是实现java.lang.Comprable;另一种实现java.util.Comparator.下面来谈它们两个的区别,和如何选择哪种方案比较好.

区别:

1. Comparale 接口只有一个方法: compareTo(Object obj)方法, 而Comparator接口,有两个方法:compare(Object obj1,Object obj2)和equals(Object obj)

2. Comparable 的类层次是:java.lang, 而java.util

3. 在Comparator中的compare方法里面,要对两个参数的类型进行检查,而Comparable中的compareTo只对一个参数进行检查

4.对于Comparator的equals方法,一般来说不用重写,而直接用基类Object的已经能满足大多数的需求,在这里推荐不要重写

选择哪种方案:

1. 对于Comparale比较简单而且需要比较少的工作,而且在用到TreeSet或TreeMap时,构造器不用带参数,且能每次都能用相同的的比较方法,如果用Comparable能达到目的,就最好用Comparable接口

2. 对于Comparator接口比较灵活,而且要更多一点的工作,能通过实现Comparator接口来产生很多不一样的类,而且能方便按其他的字段进行排序,同时对于基本类型数组无法用Comparator进行排序,只能用于对象的排序

分享到:
评论

相关推荐

    5-Java数组与方法

    在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它们提供了一种方式来组织和管理大量数据,使得我们可以高效地访问和操作这些数据。本章将深入探讨数组的基本概念、定义以及如何在实际编程...

    java排序Comparator和Comparable

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

    Comparable接口和Comparator使用示例

    Comparable 接口和 Comparator 使用示例 在 Java 编程语言中,比较和排序是非常...Comparable 接口和 Comparator 都是 Java 中非常重要的比较和排序机制,它们提供了不同的比较和排序方式,分别适用于不同的应用场景。

    第03讲 JAVA数组.ppt

    【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...

    JAVA数组操作

    插入元素通常需要创建新数组,因为Java数组长度固定。可以创建一个更大的数组,复制旧数组内容,然后在指定位置插入新元素。 7. **数组的删除操作**: 删除元素同样涉及数组的重组。可以选择移动后面的元素覆盖...

    java的Comparator和Comparable.docx

    在 Java 中,Comparator 和 Comparable 是两个非常重要的接口,它们用于对象的排序操作。这两个接口都是在 java.util 包中定义的,主要用于定制排序规则。 **一、Comparator 接口** Comparator 接口允许我们创建...

    java数组教学及练习

    在这个“java数组教学及练习”中,我们将深入探讨数组的本质、一维数组的使用、多维数组的概念,以及如何处理命令行参数和数组的操作,如复制与排序。 1. **什么是数组**: 数组是Java中预定义的数据类型,它允许...

    对比Java中的Comparable排序接口和Comparator比较器接口

    在Java编程语言中,Comparable和Comparator接口用于对对象进行比较和排序。这两个接口在很多情况下都能派上用场,但它们的应用场景和实现方式有所不同。 首先,Comparable接口是排序接口,意味着一个类如果实现了...

    Java数组与集合

    例如,`ArrayList.add()`和`List.add(int index, Object o)`分别用于在列表末尾添加元素和在指定位置插入元素。`Map.put()`方法将键值对放入Map,`Map.get()`根据键获取值。 集合的一个重要特性是可变性,它们的...

    JAVA 对象数组按照多个属性进行排序

    本文将深入探讨如何在Java中实现这个功能,结合给出的标签“源码”和“工具”,我们将讨论标准库中的`Comparator`接口和`Collections.sort()`方法,以及自定义比较逻辑。 首先,了解Java中的`Comparable`和`...

    Java中实现Comparable和Comparator对象比较

    Java提供了两种方式来实现对象的排序:Comparable接口和Comparator接口。这两种接口都用于定义比较规则,但使用场景和方式有所不同。 首先,Comparable接口是Java.lang包中的一个接口,它包含一个方法`compareTo(T ...

    java 基础 数组对象

    对于基本类型,Java提供了预定义的比较方法,而对于对象数组,通常需要自定义比较器(Comparator)或者确保对象类实现了`Comparable`接口。 总之,数组是Java中基础且重要的数据结构,尤其是对象数组,它允许我们在...

    用java中对象数组知识做的学生管理系统

    在学生管理系统中,可能需要根据学号、姓名或年龄对学生进行排序,这可以通过实现`Comparable`接口或者使用`Comparator`来完成。此外,可能还需要实现查找特定学生的方法,这通常涉及到遍历数组。 在实际开发中,...

    Java中如何比较两个数组中元素是否相同

    在Java编程中,比较两个数组中元素是否相同是一项常见的任务,尤其在处理数据验证、测试用例或数据处理逻辑时。下面将详细讲解如何在Java中实现这一功能,并探讨几种不同的方法。 首先,我们来看标题和描述中提到的...

    Java5.0数组排序

    1. 泛型的引入:Java 5.0引入了泛型,使得`Arrays.sort()`方法可以处理任何实现了`Comparable`的对象数组,增强了代码的类型安全性和可读性。 2. 自定义`Comparator`:对于不遵循自然顺序或者需要特殊排序逻辑的类...

    Java数组操作的10大方法

    Java数组是程序设计中最基本的数据结构之一,它们用于存储固定数量的同类型元素。下面将详细解释Java数组操作的10大方法。 1. **定义Java数组** - 动态定义:`String[] aArray = new String[5];` - 初始化赋值:`...

    数组练习题Subject:数组答案源代码

    数组允许程序员存储和管理固定数量的同类型元素,这些元素可以通过索引来访问。本话题将深入探讨数组的概念、操作及在Java中的应用。 一、数组的基本概念 数组是一个有序的数据集合,它在内存中分配连续的空间来...

    Java 的常用包与数组的复制与排序25

    在Java编程语言中,"Java的常用包"和"数组的复制与排序"是学习的基础且重要的部分。这里,我们主要探讨的是Java的核心库包以及如何处理数组,特别是复制和排序的操作。 首先,让我们深入了解Java的常用包。Java标准...

    泛型自定义数组大小

    如果需要对泛型数组进行排序,可以利用Java的`Collections.sort()`方法(对于集合)或`Arrays.sort()`方法(对于数组),但需要注意,数组的元素必须实现了`Comparable`接口或提供自定义的`Comparator`。 5. **文件...

    java 对象数组排序

    对于对象数组,它要求数组中的元素实现了`Comparable`接口。`Comparable`接口定义了一个`compareTo()`方法,该方法用于比较当前对象与其他对象的大小关系。因此,如果你想对一个对象数组进行排序,你需要确保数组中...

Global site tag (gtag.js) - Google Analytics