`
zds420
  • 浏览: 197965 次
  • 性别: 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期末复习-类集框架

    最大单值操作父接口Collection及其子接口、子类: List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作接口Queue、Set接口、HashSet类、TreeSet类、SortedSet接口 双值操作接口Map(key-&gt;...

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

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

    java集合类演示源码

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

    11集合.rarjava 集合类

    java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,在这里,我主要是想说明它的sort方法的几种类型, 提示:实现接口的方法时,只需要比较两个数,大的返回1,...

    Java基础知识点.html

    哈希值 LinkedHashSet TreeSet 自然排序Comparable 比较器排序Comparator Set集合 并发修改异常 LinkedList集合 ArrayList集合 List集合 Collection集合概述 冒泡排序 Object 异常 Math 包装类 Calendar类 ...

    java培训机构内部预习文档

    集合框架 Collection、List、Set、Map的接口及其实现类、迭代、Hash 算法与 hashCode 方法、comparable、泛型 chp12.异常 概念、分类、产生、传递、处理、自定义异常 chp13.线程 概念、创建、状态转换、数据共享、...

    新版java教程 全套javase零基础到高级视频教程小白自学编程下载地址

    ·实战teratori迭代器和自定义Comparable:排序接口 ·玩转ava操作文件File类常用操作 ·案例实战IO流Input、Output Stream流 ·详细常见Object、Math、String等核心类 ·掌握枚举Enum和时间日期LocalDate使用 ·面试...

    StandardLibraryProtocolChecks:测试Swift标准库中协议的语义一致性

    Comparable Equatable Hashable MutableCollection RandomAccessCollection Sequence 动机 假设你已经定义了一个MutableCollection称为FourStrings 。 你怎么知道它是正确的? 即使你已经测试过你直接编写的...

    面试官都扯不过你系列之集合框架类总结

    什么是迭代器iterator和ListIterator的区别Collection和Collections的区别Comparable和Compartor接口是干什么,列出区别heap 和stack 有什么区别如何确保一个集合不会被修改CollectionListArray与ArrayList有什么...

    collection_map_demo:java集合框架的demo

    collection_map_demo java集合框架的demo 通过实现一个学生选课的demo了解java集合框架知识点 List、Set、Map的增删改查 Collections工具类的sort方法以及comparable接口和comparator接口

    JAVA基础课程讲义

    Comparable接口 141 equals和hashcode方法 143  泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流程序及深入(将文件中的...

    Guava 16.0 API (CHM格式)

    Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类  4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易...

    java初学者必看

    15.2.1 容器(Collection) 15.2.2 迭代器(Iterator) 15.3 链表List 15.3.1 链表List接口方法 15.3.2 链表迭代器接口 15.3.3 链表和数组链表 15.3.4 链表应用 15.3.5 数组链表应用 15.4 集Set 15.4.1 排序集...

    Java集合框架总结

    3. Collection 接口: 2 4.Iterator 接口: 3 5.List接口: 3 5.1 LinkedList类: 5 5.2 ArrayList类: 5 6.Set接口: 5 7.Map接口: 6 8.Comparable接口和Comparator接口: 7 9. 集合框架面试题 7

    Java服务器端开发面试.doc

    何时栈上创建,传递变量时候的按值传 递 Comparable 接口,Comparator类,用来做比较,主要是用于集合中,排序,插入等等 类初始化,变量初始化,静态变量,静态区,常量区等等 继承多态需要知道的有super, this, ...

    java集合课件

    本节内容包括 集合的概念 集合API Collection 接口 Iterator 接口 Set 接口 List 接口 和 Comparable 接口 Map 接口

    Java开发详解.zip

    031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf ...

    经典飞机大战java源码

    用户的信息采用属性文件方式存储,利用输入输出流对属性文件的读和写过程,充当增删改查的过程,排行榜采用用户的分数从高到低排列,用户实体类实现Comparable接口即可,在调用处,Collection.sort()方法排序。...

    java排序源码

    排序算法,基于compare,comparable接口的使用,使用collection下的sort方法对读取的文件中的内容进行排序,并去重,很不错的简单小程序,谢谢下载

Global site tag (gtag.js) - Google Analytics