Comparator与Comparable,自定义排序和类比较器,TreeSet对象排序
- /**
- * 学生类
- * @author Administrator
- *
- */
- public class Student {
- private String sno ;
- private String sname ;
- private Integer score ;
- public Student(String sno, String sname, Integer score) {
- super();
- this.sno = sno;
- this.sname = sname;
- this.score = score;
- }
- public String getSno() {
- return sno;
- }
- public void setSno(String sno) {
- this.sno = sno;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public Integer getScore() {
- return score;
- }
- public void setScore(Integer score) {
- this.score = score;
- }
- import java.util.Comparator;
- /**
- * 比较算法的类,比较器
- * @author Administrator
- *
- */
- public class MyCmp implements Comparator<Student>{
- @Override
- public int compare(Student o1, Student o2) {
- // TODO Auto-generated method stub
- if (o1.getScore() > o2.getScore()) {
- return 1;
- } else if (o1.getScore() < o2.getScore()) {
- return -1;
- } else {
- return 0;
- }
- }
- package tr
- import java.util.TreeSet;
- //测试类
- public class Test {
- public static void main(String[] args) {
- TreeSet<Student> set = new TreeSet<Student>(new MyCmp());
- Student s1 = new Student("1001","chen",67);
- Student s2 = new Student("1001","zhang",17);
- Student s4 = new Student("1003","zeng",47);
- Student s5 = new Student("1004","wang",87);
- Student s6 = new Student("1005","chao",67);
- Student s3 = new Student("1002","zhou",62);
- set.add(s1);
- set.add(s2);
- set.add(s3);
- set.add(s4);
- set.add(s5);
- set.add(s6);for(java.util.Iterator<Student> it= set.iterator();it.hasNext();){
- Student s = it.next();
- System.out.println(s.getSno()+","+s.getSname()+","+s.getScore());
- }
- }
- }
- /**
- * 学生类
- * @author Administrator
- *
- */
- public class Student1 implements Comparable<Student1>{
- private String sno ;
- private String sname ;
- private Integer score ;
- public Student1(String sno, String sname, Integer score) {
- super();
- this.sno = sno;
- this.sname = sname;
- this.score = score;
- }
- public String getSno() {
- return sno;
- }
- public void setSno(String sno) {
- this.sno = sno;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public Integer getScore() {
- return score;
- }
- public void setScore(Integer score) {
- this.score = score;
- }
- // 自定义排序规则
- @Override
- public int compareTo(Student1 s) {
- if (this.getScore() > s.getScore()) {
- return 1;
- } else if (this.getScore() < s.getScore()) {
- return -1;
- } else {
- return 0;
- }
- }
- }
Comparator与Comparable,自定义排序和类比较器,TreeSet对象排序的更多相关文章
- java之Comparator与Comparable
转自:http://blog.csdn.net/zhangerqing 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定 ...
- java的Comparator和Comparable
java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. ...
- Java集合中对象排序
集合中的对象排序需求还是比較常见的.当然我们能够重写equals方法,循环比較:同一时候Java为我们提供了更易使用的APIs.当须要排序的集合或数组不是单纯的数字型时,通常能够使用Comparato ...
- 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API
---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...
- java集合框架之比较器Comparator、Comparable
参考http://how2j.cn/k/collection/collection-comparator-comparable/693.html Comparator 假设Hero有三个属性 name ...
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.Ru ...
- 集合排序 Comparator和Comparable的使用区别
Java 排序 Compare Comparator接口 Comparable接口 区别 在Java中使用集合来存储数据时非常常见的,集合排序功能也是常用功能之一.下面看一下如何进行集合排序,常用的 ...
- Java://Comparator、Comparable的用法(按照要求将set集合的数据进行排序输出):
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; //comparator. ...
- 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 ...
随机推荐
- linux中的baff/cache占用大量内存,如何清理?
执行命令echo 3 > /proc/sys/vm/drop_caches,即可清空buff/cache 参考http://blog.csdn.net/kevins_lee/article/de ...
- 我在web前端路上的第一个脚印
这是我的第一篇博客,希望记录下我在路上见到的风景,也和大家一起分享.
- 渗透测试学习 三、Linux基础
Linux发行版本 内核+应用程序 打包在一起 一.优点: 完全免费 完全兼容POSIX 1.0标准 多用户,多任务 良好的界面 可靠安全稳定的性能 支持多种平台 丰富的网络功能 安全性更好(针对 ...
- ImportError: dynamic module does not define module export function (PyInit__sqlite3)
使用python3.6 中的django-admin创建项目的时候报错 ImportError: dynamic module does not define module export functi ...
- 引擎设计跟踪 ShadowMap 细节和分析
之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...
- python,验证码生成
<pre>import string import random from PIL import Image from PIL import ImageDraw from PIL impo ...
- LG3211 [HNOI2011]XOR和路径
题意 题目描述 给定一个无向连通图,其节点编号为 1 到 N,其边的权值为非负整数.试求出一条从 1 号节点到 N 号节点的路径,使得该路径上经过的边的权值的"XOR 和"最大.该 ...
- visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案
一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧. 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新. 第二步,将visual studi ...
- Linux----------httpd的简介和安装及使用
目录 一.httpd的简介 二.常用httpd版本特性 (1)httpd-2.2 (2)httpd-2.4 三.httpd的工作模型 四.httpd的程序环境即配置文件和重要目录 1.配置文件和重要目 ...
- 3-Longest Substring Without Repeating Characters @LeetCode
3-Longest Substring Without Repeating Characters @LeetCode 题目 题目中得到的信息有: 一段字符串找出不重复子串的最大长度,只需要长度信息. ...