import java.util.*;
/**
* Comparable 接口 是所有可以"排序"的类都是实现了java.lang.Comparable接口的 Comparable接口只有一个方法compareTo(Object o) jdk1.5使用泛型
* public int compareTo(Object o) {
* this == o 返回0
* this > o 返回正数
* this <0 返回负数
* }
*
* 实现了compareTo() 从而确定该类的对象的排序方式
* @author Administrator
*
*/
public class TestComparable {
public static void main(String []args) {
List list = new ArrayList();
list.add(new ComparableDemo("zhudansheng",120));
list.add(new ComparableDemo("zhuxiaosheng",130));
list.add(new ComparableDemo("John",1230));
list.add(new ComparableDemo("Test",1330));
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
//实现comparable接口的类必须 重写equals和hashCode方法
class ComparableDemo implements Comparable{
private String name;
private int age;
public ComparableDemo(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean equals(Object o) {
ComparableDemo comp = (ComparableDemo) o;
if(comp instanceof ComparableDemo) {
return this.name.equals(comp.name);
}
return super.equals(o);
}
public int hashCode() {
return super.hashCode();
}
//比较对象的值,根据哈希码进行排序比较 使用compareTo() 方法对类的对象进行排序
public int compareTo(Object o) {
// TODO Auto-generated method stub
ComparableDemo comp = (ComparableDemo) o;
if(comp instanceof ComparableDemo) {
return this.name.compareTo(comp.name); //根据哈希表进行排序
// return rInt!=0 ? this.age>comp.age ? 1 : 0 : 0;
}
else {
return super.hashCode();
}
}
public String toString() {
return this.name +" "+this.age;
}
}
分享到:
相关推荐
Java.util.Collection类的学习 Java.util.Collection类是Java编程语言中的一个基础类库,提供了许多有用的方法来操作集合对象。Collection类包含了许多静态方法,可以对集合进行排序、混排、反转、替换等操作。 1....
在Java的Collection框架中,集合类被划分为两大类:线程安全集合类与非线程安全集合类。早期版本的集合类(如`Vector`和`Hashtable`)通过`synchronized`关键字实现线程安全,但在单线程环境下这种同步机制会显著...
在上面的例子中,`Integer`类已经实现了`Comparable<Integer>`,所以可以直接排序。 ### 2. `sort(List<T> list, Comparator<? super T> c)` 如果`List`中的元素没有实现`Comparable`接口,或者你需要自定义排序...
本篇文章将深入探讨Java集合类,包括Collection、List、Map和Set,以及它们之间的关联和排序机制。 首先,让我们从Collection接口开始。Collection是最基本的集合接口,它是所有集合类的父接口。Collection接口定义...
Java集合框架主要分为两大类:**Collection** 和 **Map**。Collection接口下有List和Set两个子接口,而Map接口则用于存储键值对。 ### Collection 1.2.1 常用方法 Collection接口定义了许多通用方法,如`add()`, `...
容器分为两大类:`Collection`和`Map`。 #### 1.1.2 容器的分类 - **`Collection`**:用于存储和管理元素的集合,包括`List`、`Set`等。 - **`Map`**:用于存储键值对,其中每个键都是唯一的,对应一个值。 ### ...
集合框架001-Collection接口6-9"中涉及的关键知识点,包括`Collection`接口、`ArrayList`源码分析、`Comparator`接口以及`Comparable`接口,以及`Arrays`类中的算法。 首先,`Collection`接口是Java集合框架的根...
本篇文章将深入探讨两个重要的数据结构实现类:Collection和Map,以及它们在Java中的应用。 首先,Collection是Java集合框架的顶层接口,它是所有单值容器的父接口。Collection接口定义了对一组对象进行操作的基本...
要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode
这个框架包括了多种类型的接口和实现类,如Collection、List、Set和Map,它们各自有不同的特性和用途。 1. **集合框架概述** - **容器简介**:集合框架是一种数据结构,用于存储和管理对象。它可以视为一个容器,...
实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户使用,Java平台还提供了Collections和Arrays工具类。collection.rar分别对上述内容进行详细讲解演示。
Java集合框架大致分为两大类:`Collection` 和 `Map`。 - **Collection**:代表一组对象,其中对象称为元素。`Collection`接口是所有单列集合的根接口,包括`List`、`Set`等。 - **Map**:存储键值对,其中键不能...
Collection 的主要实现类有 List 和 Set。 List 是一种有序的 Collection,每个元素都有其索引,元素可以重复。List 的主要实现类有 ArrayList 和 LinkedList。ArrayList 允许对元素进行快速随机访问,但是向 List ...
集合框架包括了多种接口和类,如Collection、List、Set、Map等,它们各自有特定的功能和用途。 1. **集合框架概述** - **容器简介**:集合框架就是一组接口和类,它们定义了存储、检索和操作对象的标准方式。这些...
对于自定义类,我们可以在类中实现`Comparable`接口,重写`compareTo()`方法来定义元素之间的比较规则。或者,我们可以在排序时传入一个`Comparator`实例。 总的来说,Java泛型集合和集合框架提供了强大的数据存储...
7. **多态与接口**:Collection接口的实现类,如ArrayList、LinkedList等,都是多态的,这意味着你可以声明一个Collection类型的引用,然后将其指向任意实现了Collection接口的具体类的对象,从而实现对不同集合类的...
这里的关键在于,如果元素实现了Comparable接口(如User类),那么sort()方法可以直接比较并排序这些元素。Comparable接口定义了一个compareTo()方法,用来比较当前对象与其他对象的大小关系。 除了排序,...
- **Comparable**:需要被比较的对象自身实现该接口,通常用于自然排序。 - **Comparator**:独立于对象之外的比较器,可以自定义比较逻辑。 ### 总结 Java集合框架为开发者提供了丰富的数据结构选项,包括但不...
Java集合类层次结构还包含了一些其他接口,如Iterable、Iterator、Comparable和Comparator等。这些接口和类共同构建了一个强大的工具箱,使得开发者能够根据具体需求选择合适的数据结构,提高程序的效率和可读性。...