1. /**
  2. * 学生类
  3. * @author Administrator
  4. *
  5. */
  6. public class Student {
  7.  
  8. private String sno ;
  9. private String sname ;
  10. private Integer score ;
  11.  
  12. public Student(String sno, String sname, Integer score) {
  13. super();
  14. this.sno = sno;
  15. this.sname = sname;
  16. this.score = score;
  17. }
  18. public String getSno() {
  19. return sno;
  20. }
  21. public void setSno(String sno) {
  22. this.sno = sno;
  23. }
  24. public String getSname() {
  25. return sname;
  26. }
  27. public void setSname(String sname) {
  28. this.sname = sname;
  29. }
  30. public Integer getScore() {
  31. return score;
  32. }
  33. public void setScore(Integer score) {
  34. this.score = score;
  35. }
  36.  
  37. import java.util.Comparator;
  1. /**
  2. * 比较算法的类,比较器
  3. * @author Administrator
  4. *
  5. */
  6. public class MyCmp implements Comparator<Student>{
  7.  
  8. @Override
  9. public int compare(Student o1, Student o2) {
  10. // TODO Auto-generated method stub
  11. if (o1.getScore() > o2.getScore()) {
  12. return 1;
  13. } else if (o1.getScore() < o2.getScore()) {
  14.  
  15. return -1;
  1. } else {
  2. return 0;
  3. }
  4. }
  5. package tr
  1. import java.util.TreeSet;
  2. //测试类
  3. public class Test {
  4. public static void main(String[] args) {
  5. TreeSet<Student> set = new TreeSet<Student>(new MyCmp());
  6. Student s1 = new Student("1001","chen",67);
  7. Student s2 = new Student("1001","zhang",17);
  8. Student s4 = new Student("1003","zeng",47);
  9. Student s5 = new Student("1004","wang",87);
  10. Student s6 = new Student("1005","chao",67);
  11. Student s3 = new Student("1002","zhou",62);
  12. set.add(s1);
  13. set.add(s2);
  14. set.add(s3);
  15. set.add(s4);
  16. set.add(s5);
  17. set.add(s6);for(java.util.Iterator<Student> it= set.iterator();it.hasNext();){
  18. Student s = it.next();
  19. System.out.println(s.getSno()+","+s.getSname()+","+s.getScore());
  20. }
  21. }
  22. }

  1. /**
  2. * 学生类
  3. * @author Administrator
  4. *
  5. */
  6. public class Student1 implements Comparable<Student1>{
  7.  
  8. private String sno ;
  9. private String sname ;
  10. private Integer score ;
  11.  
  12. public Student1(String sno, String sname, Integer score) {
  13. super();
  14. this.sno = sno;
  15. this.sname = sname;
  16. this.score = score;
  17. }
  18. public String getSno() {
  19. return sno;
  20. }
  21. public void setSno(String sno) {
  22. this.sno = sno;
  23. }
  24. public String getSname() {
  25. return sname;
  26. }
  27. public void setSname(String sname) {
  28. this.sname = sname;
  29. }
  30. public Integer getScore() {
  31. return score;
  32. }
  33. public void setScore(Integer score) {
  34. this.score = score;
  35. }
  36.  
  37. // 自定义排序规则
  38. @Override
  39. public int compareTo(Student1 s) {
  40. if (this.getScore() > s.getScore()) {
  41. return 1;
  42. } else if (this.getScore() < s.getScore()) {
  43. return -1;
  44. } else {
  45. return 0;
  46. }
  47. }
  48.  
  49. }

Comparator与Comparable,自定义排序和类比较器,TreeSet对象排序的更多相关文章

  1. java之Comparator与Comparable

    转自:http://blog.csdn.net/zhangerqing 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定 ...

  2. java的Comparator和Comparable

    java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序.      ...

  3. Java集合中对象排序

    集合中的对象排序需求还是比較常见的.当然我们能够重写equals方法,循环比較:同一时候Java为我们提供了更易使用的APIs.当须要排序的集合或数组不是单纯的数字型时,通常能够使用Comparato ...

  4. 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API

    ---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...

  5. java集合框架之比较器Comparator、Comparable

    参考http://how2j.cn/k/collection/collection-comparator-comparable/693.html Comparator 假设Hero有三个属性 name ...

  6. Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序

    package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.Ru ...

  7. 集合排序 Comparator和Comparable的使用区别

    Java 排序 Compare  Comparator接口 Comparable接口 区别 在Java中使用集合来存储数据时非常常见的,集合排序功能也是常用功能之一.下面看一下如何进行集合排序,常用的 ...

  8. Java://Comparator、Comparable的用法(按照要求将set集合的数据进行排序输出):

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; //comparator. ...

  9. ht-8 对arrayList中的自定义对象排序( Collections.sort(List<T> list, Comparator<? super T> c))

    package com.iotek.set; import java.util.ArrayList; import java.util.Collections; import java.util.Co ...

随机推荐

  1. linux中的baff/cache占用大量内存,如何清理?

    执行命令echo 3 > /proc/sys/vm/drop_caches,即可清空buff/cache 参考http://blog.csdn.net/kevins_lee/article/de ...

  2. 我在web前端路上的第一个脚印

    这是我的第一篇博客,希望记录下我在路上见到的风景,也和大家一起分享.

  3. 渗透测试学习 三、Linux基础

    Linux发行版本  内核+应用程序  打包在一起 一.优点: 完全免费 完全兼容POSIX 1.0标准 多用户,多任务 良好的界面 可靠安全稳定的性能 支持多种平台 丰富的网络功能 安全性更好(针对 ...

  4. ImportError: dynamic module does not define module export function (PyInit__sqlite3)

    使用python3.6 中的django-admin创建项目的时候报错 ImportError: dynamic module does not define module export functi ...

  5. 引擎设计跟踪 ShadowMap 细节和分析

    之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...

  6. python,验证码生成

    <pre>import string import random from PIL import Image from PIL import ImageDraw from PIL impo ...

  7. LG3211 [HNOI2011]XOR和路径

    题意 题目描述 给定一个无向连通图,其节点编号为 1 到 N,其边的权值为非负整数.试求出一条从 1 号节点到 N 号节点的路径,使得该路径上经过的边的权值的"XOR 和"最大.该 ...

  8. visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

    一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧. 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新. 第二步,将visual studi ...

  9. Linux----------httpd的简介和安装及使用

    目录 一.httpd的简介 二.常用httpd版本特性 (1)httpd-2.2 (2)httpd-2.4 三.httpd的工作模型 四.httpd的程序环境即配置文件和重要目录 1.配置文件和重要目 ...

  10. 3-Longest Substring Without Repeating Characters @LeetCode

    3-Longest Substring Without Repeating Characters @LeetCode 题目 题目中得到的信息有: 一段字符串找出不重复子串的最大长度,只需要长度信息. ...