简单写下两种排序方法:
Comparable接口和Comparator接口,两个都是用来实现集合中元素的比较、排序的,只是两个接口使用的方式有些区别:
(1)、Comparable位于java.lang下。
接口中的方法有: int compareTo(Object obj)
Comparator位于java.util下
接口中的方法有两个:
Int compare(Object obj1,Object obj2)
Boolean equals(Object obj)
因为Comparable位于java.lang下显然默认的是Comparable下的方法。
(2)、Comparable是在集合内部定义的方法实现的排序
compareTo()方法是放在对象类里面的,
在集合内部现实 compareTo()的方法。
Comparator是在集合外部实现的排序,
compare()是放在比较对象的类外面的
需要在集合外定义 compare()的方法,也就是再写一个类,而且需要导入 java.util.Comparator类
(3)、在集合中,Collections.sort();方法排序。
在数组中用 Arrays.sort();方法进行排序。
(4)、自定义的类要加入List容器中后才能够排序,如果不指定Comparator,那么就实现 Comparable接口设定的排序方法即自然顺序排序。
(5)、Comparator是一个专用的比较器,当这个对象不支持自比较函数或者自比较函数不能满足要求时,可以写一个比较器来完成两个对象之间大小的比较。
(6)简单说;Comparable接口是一个对象本身已经支持自比较所需要实现的接口。
Comparator是一个另写一个外部类来实现的比较的接口。
例如:Student类实现Comparable接口。按照先按照age
进行排序,如果age相等时再按照name进行排序
代码如下:
public int compareTo(Student stu) {
RuleBasedCollator collator = (RuleBasedCollator) Collator.getInstance(Locale.CHINA);
// 根据元素的年龄排序从低到高,年龄相同时按照姓名排序从低到高
if(this.age<stu.getAge()){
return -1;
}
else if(this.age>stu.getAge()){
return 1;
}
else{
return collator.compare(this.getName(), stu.getName());
}
}
在main函数中,用Collections.sort()方法实现排序。
static List<Student> arr=new ArrayList<Student>();
Student stu1=new Student(1,"张一",23,"北京");
Student stu2=new Student(2,"王二",26,"河南");
Student stu3=new Student(3,"李三",24,"山东");
Student stu4=new Student(4,"张四",25,"北京");
arr.add(stu1);
arr.add(stu2);
arr.add(stu3);
arr.add(stu4);
Collections.sort(arr);
- 浏览: 47998 次
- 性别:
- 来自: 西安
最新评论
-
紫梦飘逸:
Cb123456 写道呵呵,如果在深入点就好了说的好啊
Html5实现本地视频和音频播放 -
Cb123456:
呵呵,如果在深入点就好了
Html5实现本地视频和音频播放 -
xouou_53320:
不错不错 加上雷和电就更好了
多线程雷电 -
sonicwangyue:
...
第一个html--仿英雄联盟 -
Y_1746119035:
≡ ‘(*>﹏<*)′ ~
SQL触发器
相关推荐
Comparable 接口和 Comparator 使用示例 在 Java 编程语言中,比较和排序是非常...Comparable 接口和 Comparator 都是 Java 中非常重要的比较和排序机制,它们提供了不同的比较和排序方式,分别适用于不同的应用场景。
在Java编程语言中,Comparable和Comparator接口是两个重要的概念,它们都用于对象的排序,但有着不同的使用场景和特点。本文将深入探讨这两个接口的区别,以及它们在实际开发中的应用。 首先,我们来了解一下...
在Java编程语言中,Comparable和Comparator接口是两个非常重要的组件,它们主要用来进行对象的比较和排序。了解它们之间的区别对于提升代码的可维护性和灵活性至关重要。 Comparable接口来源于java.lang包,它定义...
Comparator接口与Comparable接口是Java语言中两个重要的接口,它们都是用于比较和排序自定义类的对象的大小的。虽然它们两个都是用于比较的接口,但是它们有着不同的实现方式和应用场景。 相同之处:Comparator接口...
在Java编程语言中,排序是数据处理中一个非常常见的需求,而`Comparator`和`Comparable`接口则是实现排序的关键工具。这两个接口都是用于比较对象,但它们的应用场景和使用方式有所不同。 首先,`Comparable`接口是...
在Java编程语言中,排序是常见的操作,而`Comparable`和`Comparator`接口则是实现对象排序的两种主要方式。这篇文章将深入探讨这两种实现方式及其在实际编程中的应用。 首先,`Comparable`接口位于`java.lang`包下...
在Java编程语言中,Comparable和Comparator接口用于对对象进行比较和排序。这两个接口在很多情况下都能派上用场,但它们的应用场景和实现方式有所不同。 首先,Comparable接口是排序接口,意味着一个类如果实现了...
Java 中的 Comparable 和 Comparator 接口详解 Java 中的 Comparable 和 Comparator 接口都是用于比较和排序的,但是它们之间存在着一些关键的区别。Comparable 是一个排序接口,若一个类实现了 Comparable 接口,...
Java 中的 Comparable 和 Comparator 是两个常用的接口,用于实现对象的比较和排序。它们都是 Java 中的接口,都是用于比较对象的大小的,但它们有所不同。 Comparable 接口 Comparable 接口位于 java.lang....
在Java编程语言中,Comparable和Comparator接口都用于比较对象,但它们之间存在一些关键区别,这对于理解和优化代码的可扩展性至关重要。 首先,Comparable接口是一个排序接口,它定义了一个单一的方法`compareTo(T...
在 Java 中,Comparator 和 Comparable 是两个非常重要的接口,它们用于对象的排序操作。这两个接口都是在 java.util 包中定义的,主要用于定制排序规则。 **一、Comparator 接口** Comparator 接口允许我们创建...
Java 语言中提供了两个比较接口: Comparable 和 Comparator,这两个接口都是用于比较对象的大小顺序的,但它们有着不同的使用场景和实现方式。在本文中,我们将详细介绍这两个接口的区别和使用方法。 Comparable ...
Comparable接口和Comparator接口是Java中用于排序的关键组件,它们在数据结构如数组、集合和映射的排序过程中扮演着重要角色。接下来我们将深入探讨这两个接口的特性、用途以及它们之间的区别。 1. Comparable接口...
#### 二、Comparable接口解析 ##### 1. 概念介绍 `Comparable`接口位于`java.lang`包中,它定义了一个单一的方法`compareTo`。这个接口适用于那些具有自然顺序的对象。当一个类实现了`Comparable`接口时,意味着它...
在Java编程语言中,Comparable和Comparator接口用于比较对象的顺序,尤其在进行排序操作时非常关键。两者虽然目的相似,但使用方式和应用场景有所区别。 Comparable接口定义在`java.lang`包中,它只有一个方法`...
Comparable接口是Java中用于对象排序的关键接口,主要应用于需要自动排序的场景。当一个类实现了Comparable接口,意味着该类的对象具备内在的比较逻辑,可以直接进行比较。例如,我们可以创建一个Person类,让它实现...
在Java编程语言中,`Comparable`接口和`Comparator`接口是两种重要的排序机制,它们用于对集合中的对象进行比较和排序。理解它们的区别对于任何Java开发者来说都是至关重要的。 首先,`Comparable`接口位于`java....
Java提供了两种方式来实现对象的排序:Comparable接口和Comparator接口。这两种接口都用于定义比较规则,但使用场景和方式有所不同。 首先,Comparable接口是Java.lang包中的一个接口,它包含一个方法`compareTo(T ...