Chinaunix首页 | 论坛 | 博客
  • 博客访问: 83039
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 839
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-12 14:38
个人简介

我在收集一些石头,我期待它们有一天能够串联成一串项链。

文章分类

全部博文(31)

文章存档

2013年(31)

我的朋友

分类: Java

2013-04-23 23:04:15

From JavaSE6.0 编程指南

点击(此处)折叠或打开

  1. package wyf.jc;
  2. import java.util.*;
  3. //实现Comparable接口的元素类
  4. class MyEntry implements Comparable
  5. {
  6.      //MyEntry的成员属性
  7.      int size;
  8.      //MyEntry类的无参构造器
  9.      public MyEntry()
  10.      {}
  11.      //MyEntry类的有参构造器
  12.      public MyEntry(int size)
  13.      {
  14.           this.size=size;
  15.      }
  16.      //实现compareTo方法
  17.      public int compareTo(Object o)
  18.      {
  19.           //强制类型转换
  20.           MyEntry me=(MyEntry)o;
  21.           //定义排序的规则
  22.           return this.size-me.size;
  23.      }
  24.      //重写equals方法
  25.      public boolean equals(Object o)
  26.      {
  27.          //强制类型转换
  28.         MyEntry me=(MyEntry)o;   
  29.         return (me.size==this.size);
  30.      }
  31.      //重写hashCode方法
  32.      public int hashCode()
  33.      {
  34.          return 12;
  35.      }
  36. }
  37. //主类
  38. public class Sample14_12
  39. {
  40.      public static void main(String[] args)
  41.      {
  42.           //创建了一个TreeSet集合的对象
  43.           TreeSet ts=new TreeSet();
  44.           //向其中依次添加不同属性的学生对象
  45.           System.out.println("=============插入21===============");
  46.           ts.add(new MyEntry(21));
  47.           System.out.println("=============插入19===============");
  48.           ts.add(new MyEntry(19));
  49.           System.out.println("=============插入18===============");
  50.           ts.add(new MyEntry(18));
  51.           System.out.println("=============插入28===============");
  52.           ts.add(new MyEntry(28));
  53.           System.out.println("=========再次插入21===============");
  54.           ts.add(new MyEntry(21));
  55.           System.out.println("==================================");
  56.           //打印输出TreeSet中的内容
  57.           System.out.print("这里是TreeSet操作后的结果:");
  58.           System.out.println(ts);
  59.      }
  60. }
or:

点击(此处)折叠或打开

  1. package wyf.jc;
  2. import java.util.*;
  3. class Student implements Comparable
  4. {
  5.      //学生的成员属性
  6.      String name;
  7.      int age;
  8.      int classNum;
  9.      //学生类的无参构造器
  10.      public Student(){}
  11.      //学生类的有参构造器
  12.      public Student(String name,int age,int classNum)
  13.      {
  14.           this.name=name;
  15.           this.age=age;
  16.           this.classNum=classNum;
  17.      }
  18.      //实现compareTo方法
  19.      public int compareTo(Object o)
  20.      {
  21.           //强制类型转换
  22.           Student s=(Student)o;
  23.           //用classNum作为基准进行排序
  24.           return this.classNum-s.classNum;
  25.      }
  26. }
  27. //定义比较器
  28. class AgeCompare implements Comparator
  29. {
  30.      public int compare(Object o1,Object o2)
  31.      {
  32.           //将接受到的对象的引用进行强制类型转换
  33.           Student s1=(Student)o1;
  34.           Student s2=(Student)o2;
  35.           //指定按年龄进行排序
  36.           return s1.age-s2.age;
  37.      }
  38. }
  39. //主类
  40. public class Sample14_13
  41. {
  42.      public static void main(String[] args)
  43.      {
  44.           //创建TreeSet对象ts1与ts2
  45.           TreeSet ts1=new TreeSet();
  46.           TreeSet ts2=new TreeSet(new AgeCompare());
  47.           //向ts1中添加内容不同的学生对象的元素
  48.           ts1.add(new Student("tom",21,97005));
  49.           ts1.add(new Student("jerry",19,97003));
  50.           ts1.add(new Student("lucy",18,97004));
  51.           ts1.add(new Student("smith",28,97001));
  52.           ts1.add(new Student("jc",23,97002));
  53.           //想ts2中添加与ts1中相同的元素
  54.           ts2.add(new Student("tom",21,97005));
  55.           ts2.add(new Student("jerry",19,97003));
  56.           ts2.add(new Student("lucy",18,97004));
  57.           ts2.add(new Student("smith",28,97001));
  58.           ts2.add(new Student("jc",23,97002));
  59.           //打印ts1与ts2中的元素
  60.           System.out.println("==========================="+
  61.                                   "==========================");
  62.           System.out.println("这里的SortedSet是按班号进行的排序:");
  63.           System.out.println(ts1);
  64.           System.out.println("==========================="+
  65.                                   "==========================");
  66.           System.out.println("这里的SortedSet是按年龄进行的排序:");
  67.           System.out.println(ts2);
  68.      }
  69. }

阅读(865) | 评论(0) | 转发(0) |
0

上一篇:Java 集合类框架

下一篇:Java 栈&&队列

给主人留下些什么吧!~~