(JAVA)红黑树之自然顺序排序和自定义排序方式

package cn.book.objectarr;/*** @author alina* @date 2021年08月22日 6:57 下午*/
public class Student implements Comparable<Student> {private String name;private int age;public Student(){}/***** @author Alina* @date 2021/9/21 9:41 下午* @param o* @return int* 使用构造方法的自然排序方式*/public  int compareTo(Student o ){//String类自带comparaTo();int num = this.name.compareTo(o.name);return num==0?this.age - o.age:num;
//        if(num==0){
//            return this.age - o.age;
//        }else{
//            return num;
//        }}public Student(String name,int age){this.age = age;this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return this.age;}public void setAge(int age) {this.age = age;}public String toString(){return "Student"+" "+name+" "+age;}public boolean equals(Object o){if (o == null) {return false;}else if(this == o){return true;}else if (o instanceof Student){Student s = (Student) o;return this.name.equals(s.name) && this.age == s.age;}return false;}public int hasCode(){return name.hashCode() +age*39;}}

public class TreeSetDemo {public static void main(String[] args) {//以姓名为顺序排序;method_1();//以年龄为顺序排序method_2();}public static void method_1(){TreeSet<Student> tr =  new TreeSet<>();tr.add(new Student("zhangsan",12));tr.add(new Student("lisi",13));tr.add(new Student("wanger",56));tr.add(new Student("lisi",14));Iterator it = tr.iterator();while (it.hasNext()){System.out.println(it.next());}}

package cn.book.objectarr;import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;/*** @author Alina* @date 2021年09月21日 8:50 下午*/
class myCompatato implements Comparator<Student>{@Overridepublic int compare(Student o1, Student o2) {int age = o1.getAge() - o2.getAge();return age == 0? o1.getName().compareTo(o2.getName()):age;}
}
public class TreeSetDemo {public static void main(String[] args) {//以年龄为顺序排序method_2();}public static void method_2(){TreeSet<Student> tr =  new TreeSet<>( new myCompatato());tr.add(new Student("zhangsan",12));tr.add(new Student("lisi",13));tr.add(new Student("wanger",56));tr.add(new Student("lisi",14));Iterator it = tr.iterator();while (it.hasNext()){System.out.println(it.next());}}}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(JAVA)TreeSet

package homework;/*** author Alina* date 2021年09月22日 10:34 下午*/ class SetTestStudent implements Comparable<SetTestStudent>{private String name;private int gradeScoresOfChinese;private int gradeScoresOfMath;private int gradeScoresOfEnglish;public…

开始

纠结的考试终于结束了。。。可以静下心来整理博客了。。。转载于:https://www.cnblogs.com/Happyhe/archive/2013/05/29/3107121.html

(JAVA)Map集合

package map.demo;import java.util.*;/*** author Alina* date 2021年09月25日 11:20 下午* 底层原理是哈希表&#xff0c;保证唯一性* 允许存储null键&#xff0c;null值* 线程不安全&#xff0c;运行速度快* keyset()可以获取到键* Collections 类的方法reverseOrder :调用空…

各种推荐资料汇总。。。

http://blog.csdn.net/lzt1983/article/details/7914536 转载于:https://www.cnblogs.com/tandychao/archive/2013/05/30/3108022.html

(JAVA)File类

package filedemo;import java.io.File; import java.io.IOException;/*** author Alina* date 2021年10月07日 10:33 下午* File类 提供方法操作 文件 目录 文件夹* 1.两个静态成员变量 static String pathSeparator 路径分隔符* 2.static String separator 名称分隔符* 3.创…

(JAVA)File类2

package filedemo;import java.io.File; import java.io.FileFilter; import java.text.DateFormat; import java.util.Date;/*** author Alina* date 2021年10月10日 11:15 下午* 1.获取文件最后修改时间 Long lastModified()* 2.以数组获取路径下所有文件String[] list();Fi…

MVVM之旅

MVVM的概念已经在脑子里渗透了一段时间&#xff0c;也试着使用了一段时间&#xff0c;就我个人理解&#xff0c;MVVM所倡导的应该是解耦UI跟数据打交道的那一部分&#xff0c;而纯UI的还是写在CodeBehind里。MVVM是以绑定&#xff08;绑定数据、绑定命令&#xff09;来驱动的&a…

变量原理深入讲解

javascript是一种解释执行的语言 语言分解释执行和编译执行 人用直观的编程语言来写程序-------------计算机语言010011100 举例理解&#xff1a; 英文 中国人张三(不会英文) 1、把英文报刊翻译成中文报刊&#xff0c;然后再看(翻译完后&#xff0c;多了一份中…

(JAVA)IO1

IO流四个抽象及类 1.字节输出流&#xff0c;写入任意文件OutputStreamwrite 字节数组 字节数组的一部分 单个字节close 释放资源flush 刷新资源&#xff0c;强制刷新资源 2.字节输入流&#xff0c;读取任意文件InputStreamread 字节数组 字节数组的一部分 单个字节close 关闭资…

putil:一个用于获得处理器和系统相关信息的模块

psutil能干的事是&#xff1a;提供了个接口&#xff0c;可以用来获取信息&#xff0c;包括&#xff1a; 当前运行的进程系统&#xff08;资源使用&#xff09;信息CPU内存磁盘网络用户psutil实现了很多功能&#xff0c;包括了如下工具所具有的&#xff1a; pstopdfkillfreelsof…

(JAVA)IO缓冲区

package IODemo;import java.io.*; import java.nio.charset.StandardCharsets;/*** author Alina* date 2021年10月18日 9:57 下午* 一、 1.IO流关于缓冲区&#xff0c;* 2.输出流缓冲区&#xff1a;BufferedOutputStream(OutputStream out)* 3.输入流缓冲区&#…

php正则表达式如何找到匹配模式中的最后一组

转载于:https://www.cnblogs.com/MyFlora/archive/2013/06/07/3124073.html

(JAVA)IO流之读写单个字节和复制文本文件

package IODemo;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;/*** author Alina* date 2021年10月15日 8:19 下午* read()方法特点* 1.每次只读取一个文件* 2.只运行一次&#xff0c…