`
zds420
  • 浏览: 202763 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Collection类的Comparable

    博客分类:
  • J2SE
 
阅读更多
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类的学习.pdf

    Java.util.Collection类的学习 Java.util.Collection类是Java编程语言中的一个基础类库,提供了许多有用的方法来操作集合对象。Collection类包含了许多静态方法,可以对集合进行排序、混排、反转、替换等操作。 1....

    关于Java_Collection_API_

    在Java的Collection框架中,集合类被划分为两大类:线程安全集合类与非线程安全集合类。早期版本的集合类(如`Vector`和`Hashtable`)通过`synchronized`关键字实现线程安全,但在单线程环境下这种同步机制会显著...

    collection接口的静态方法

    在上面的例子中,`Integer`类已经实现了`Comparable&lt;Integer&gt;`,所以可以直接排序。 ### 2. `sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c)` 如果`List`中的元素没有实现`Comparable`接口,或者你需要自定义排序...

    Java(Collection_List_Map_Set).rar_java集合类详解

    本篇文章将深入探讨Java集合类,包括Collection、List、Map和Set,以及它们之间的关联和排序机制。 首先,让我们从Collection接口开始。Collection是最基本的集合接口,它是所有集合类的父接口。Collection接口定义...

    Java集合Collection、List、Set、Map使用详解

    Java集合框架主要分为两大类:**Collection** 和 **Map**。Collection接口下有List和Set两个子接口,而Map接口则用于存储键值对。 ### Collection 1.2.1 常用方法 Collection接口定义了许多通用方法,如`add()`, `...

    Java集合排序及java集合类详解(Collection、List、Map、Set

    容器分为两大类:`Collection`和`Map`。 #### 1.1.2 容器的分类 - **`Collection`**:用于存储和管理元素的集合,包括`List`、`Set`等。 - **`Map`**:用于存储键值对,其中每个键都是唯一的,对应一个值。 ### ...

    11.集合框架001-Collection接口6-9

    集合框架001-Collection接口6-9"中涉及的关键知识点,包括`Collection`接口、`ArrayList`源码分析、`Comparator`接口以及`Comparable`接口,以及`Arrays`类中的算法。 首先,`Collection`接口是Java集合框架的根...

    浅谈Java中常用数据结构的实现类Collection和M

    本篇文章将深入探讨两个重要的数据结构实现类:Collection和Map,以及它们在Java中的应用。 首先,Collection是Java集合框架的顶层接口,它是所有单值容器的父接口。Collection接口定义了对一组对象进行操作的基本...

    JAVA集合的使用(List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类、equals、hashCode)

    要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode

    Java集合排序及java集合类详解(Collection、List、Map、Set).pdf

    这个框架包括了多种类型的接口和实现类,如Collection、List、Set和Map,它们各自有不同的特性和用途。 1. **集合框架概述** - **容器简介**:集合框架是一种数据结构,用于存储和管理对象。它可以视为一个容器,...

    java集合类演示源码

    实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户使用,Java平台还提供了Collections和Arrays工具类。collection.rar分别对上述内容进行详细讲解演示。

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    Java集合框架大致分为两大类:`Collection` 和 `Map`。 - **Collection**:代表一组对象,其中对象称为元素。`Collection`接口是所有单列集合的根接口,包括`List`、`Set`等。 - **Map**:存储键值对,其中键不能...

    Java集合Collection、List、Set、Map使用详细讲解.doc

    集合框架包括了多种接口和类,如Collection、List、Set、Map等,它们各自有特定的功能和用途。 1. **集合框架概述** - **容器简介**:集合框架就是一组接口和类,它们定义了存储、检索和操作对象的标准方式。这些...

    java泛型集合 java集合 集合 java Collection

    对于自定义类,我们可以在类中实现`Comparable`接口,重写`compareTo()`方法来定义元素之间的比较规则。或者,我们可以在排序时传入一个`Comparator`实例。 总的来说,Java泛型集合和集合框架提供了强大的数据存储...

    11.集合框架001-Collection接口4-5

    7. **多态与接口**:Collection接口的实现类,如ArrayList、LinkedList等,都是多态的,这意味着你可以声明一个Collection类型的引用,然后将其指向任意实现了Collection接口的具体类的对象,从而实现对不同集合类的...

    Java SE编程入门教程 collection与collections(共7页).pptx

    这里的关键在于,如果元素实现了Comparable接口(如User类),那么sort()方法可以直接比较并排序这些元素。Comparable接口定义了一个compareTo()方法,用来比较当前对象与其他对象的大小关系。 除了排序,...

    Java之Collection总结

    - **Comparable**:需要被比较的对象自身实现该接口,通常用于自然排序。 - **Comparator**:独立于对象之外的比较器,可以自定义比较逻辑。 ### 总结 Java集合框架为开发者提供了丰富的数据结构选项,包括但不...

    Java集合类层次结构

    Java集合类层次结构还包含了一些其他接口,如Iterable、Iterator、Comparable和Comparator等。这些接口和类共同构建了一个强大的工具箱,使得开发者能够根据具体需求选择合适的数据结构,提高程序的效率和可读性。...

Global site tag (gtag.js) - Google Analytics