1. import java.util.Set ;
  2. import java.util.HashSet ;
  3. class Person{
  4. private String name ;
  5. private int age ;
  6. public Person(String name,int age){
  7. this.name = name ;
  8. this.age = age ;
  9. }
  10. public String toString(){
  11. return "姓名:" + this.name + ";年龄:" + this.age ;
  12. }
  13. };
  14. public class RepeatDemo01{
  15. public static void main(String args[]){
  16. Set<Person> allSet = new HashSet<Person>() ;
  17. allSet.add(new Person("张三",30)) ;
  18. allSet.add(new Person("李四",31)) ;
  19. allSet.add(new Person("王五",32)) ;
  20. allSet.add(new Person("王五",32)) ;
  21. allSet.add(new Person("王五",32)) ;
  22. allSet.add(new Person("赵六",33)) ;
  23. allSet.add(new Person("孙七",33)) ;
  24. System.out.println(allSet) ;
  25. }
  26. };
  1. import java.util.Set ;
  2. import java.util.HashSet ;
  3. class Person{
  4. private String name ;
  5. private int age ;
  6. public Person(String name,int age){
  7. this.name = name ;
  8. this.age = age ;
  9. }
  10. public boolean equals(Object obj){ // 覆写equals,完成对象比较
  11. if(this==obj){
  12. return true ;
  13. }
  14. if(!(obj instanceof Person)){
  15. return false ;
  16. }
  17. Person p = (Person)obj ; // 向下转型
  18. if(this.name.equals(p.name)&&this.age==p.age){
  19. return true ;
  20. }else{
  21. return false ;
  22. }
  23. }
  24. public int hashCode(){
  25. return this.name.hashCode() * this.age ; // 定义一个公式
  26. }
  27. public String toString(){
  28. return "姓名:" + this.name + ";年龄:" + this.age ;
  29. }
  30. };
  31. public class RepeatDemo02{
  32. public static void main(String args[]){
  33. Set<Person> allSet = new HashSet<Person>() ;
  34. allSet.add(new Person("张三",30)) ;
  35. allSet.add(new Person("李四",31)) ;
  36. allSet.add(new Person("王五",32)) ;
  37. allSet.add(new Person("王五",32)) ;
  38. allSet.add(new Person("王五",32)) ;
  39. allSet.add(new Person("赵六",33)) ;
  40. allSet.add(new Person("孙七",33)) ;
  41. System.out.println(allSet) ;
  42. }
  43. };
  1. import java.util.Set ;
  2. import java.util.TreeSet ;
  3. class Person{
  4. private String name ;
  5. private int age ;
  6. public Person(String name,int age){
  7. this.name = name ;
  8. this.age = age ;
  9. }
  10. public String gtoString(){
  11. return "姓名:" + this.name + ";年龄:" + this.age ;
  12. }
  13. };
  14. public class TreeSetDemo02{
  15. public static void main(String args[]){
  16. Set<Person> allSet = new TreeSet<Person>() ;
  17. allSet.add(new Person("张三",30)) ;
  18. allSet.add(new Person("李四",31)) ;
  19. allSet.add(new Person("王五",32)) ;
  20. allSet.add(new Person("王五",32)) ;
  21. allSet.add(new Person("王五",32)) ;
  22. allSet.add(new Person("赵六",33)) ;
  23. allSet.add(new Person("孙七",33)) ;
  24. System.out.println(allSet) ;
  25. }
  26. };
  1. import java.util.Set ;
  2. import java.util.TreeSet ;
  3. class Person implements Comparable<Person>{
  4. private String name ;
  5. private int age ;
  6. public Person(String name,int age){
  7. this.name = name ;
  8. this.age = age ;
  9. }
  10. public String toString(){
  11. return "姓名:" + this.name + ";年龄:" + this.age ;
  12. }
  13. public int compareTo(Person per){
  14. if(this.age>per.age){
  15. return 1 ;
  16. }else if(this.age<per.age){
  17. return -1 ;
  18. }else{
  19. return 0 ;
  20. }
  21. }
  22. };
  23. public class TreeSetDemo03{
  24. public static void main(String args[]){
  25. Set<Person> allSet = new TreeSet<Person>() ;
  26. allSet.add(new Person("张三",30)) ;
  27. allSet.add(new Person("李四",31)) ;
  28. allSet.add(new Person("王五",32)) ;
  29. allSet.add(new Person("王五",32)) ;
  30. allSet.add(new Person("王五",32)) ;
  31. allSet.add(new Person("赵六",33)) ;
  32. allSet.add(new Person("孙七",33)) ;
  33. System.out.println(allSet) ;
  34. }
  35. };
  1. import java.util.Set ;
  2. import java.util.TreeSet ;
  3. class Person implements Comparable<Person>{
  4. private String name ;
  5. private int age ;
  6. public Person(String name,int age){
  7. this.name = name ;
  8. this.age = age ;
  9. }
  10. public String toString(){
  11. return "姓名:" + this.name + ";年龄:" + this.age ;
  12. }
  13. public int compareTo(Person per){
  14. if(this.age>per.age){
  15. return 1 ;
  16. }else if(this.age<per.age){
  17. return -1 ;
  18. }else{
  19. return this.name.compareTo(per.name) ; // 调用String中的compareTo()方法
  20. }
  21. }
  22. };
  23. public class TreeSetDemo04{
  24. public static void main(String args[]){
  25. Set<Person> allSet = new TreeSet<Person>() ;
  26. allSet.add(new Person("张三",30)) ;
  27. allSet.add(new Person("李四",31)) ;
  28. allSet.add(new Person("王五",32)) ;
  29. allSet.add(new Person("王五",32)) ;
  30. allSet.add(new Person("王五",32)) ;
  31. allSet.add(new Person("赵六",33)) ;
  32. allSet.add(new Person("孙七",33)) ;
  33. System.out.println(allSet) ;
  34. }
  35. };

吴裕雄--天生自然java开发常用类库学习笔记:排序及重复元素说明的更多相关文章

  1. 吴裕雄--天生自然java开发常用类库学习笔记:比较器

    class Student implements Comparable<Student> { // 指定类型为Student private String name ; private i ...

  2. 吴裕雄--天生自然java开发常用类库学习笔记:定时调度

    // 完成具体的任务操作 import java.util.TimerTask ; import java.util.Date ; import java.text.SimpleDateFormat ...

  3. 吴裕雄--天生自然java开发常用类库学习笔记:正则表达式

    public class RegexDemo01{ public static void main(String args[]){ String str = "1234567890" ...

  4. 吴裕雄--天生自然java开发常用类库学习笔记:观察者设计模式

    import java.util.* ; class House extends Observable{ // 表示房子可以被观察 private float price ;// 价钱 public ...

  5. 吴裕雄--天生自然java开发常用类库学习笔记:Arrays

    import java.util.* ; public class ArraysDemo{ public static void main(String arg[]){ int temp[] = {3 ...

  6. 吴裕雄--天生自然java开发常用类库学习笔记:大数操作

    import java.math.* ; class MyMath{ public static double add(double d1,double d2){ // 进行加法计算 BigDecim ...

  7. 吴裕雄--天生自然java开发常用类库学习笔记:NumberFormat

    import java.text.* ; public class NumberFormatDemo01{ public static void main(String args[]){ Number ...

  8. 吴裕雄--天生自然java开发常用类库学习笔记:Math与Random类

    public class MathDemo01{ public static void main(String args[]){ // Math类中的方法都是静态方法,直接使用“类.方法名称()”的形 ...

  9. 吴裕雄--天生自然java开发常用类库学习笔记:取得当前日期

    import java.util.* ; // 导入需要的工具包 class DateTime{ // 以后直接通过此类就可以取得日期时间 private Calendar calendar = nu ...

  10. 吴裕雄--天生自然java开发常用类库学习笔记:日期操作类DataFormat、SimpleDataFormat

    import java.text.DateFormat ; import java.util.Date ; public class DateDemo03{ public static void ma ...

随机推荐

  1. C 语言入门---第十一章---C语言重要知识点补充

    ====C语言typedef 的用法==== 1. C语言允许为一个数据类型起一个新的别名,就像给人起绰号一样. typedef OldName newName; typedef 和 #define ...

  2. LeetCode 725. Split Linked List in Parts(分隔链表)

    题意:将原链表分隔成k个链表,要求所有分隔的链表长度差异至多为1,且前面的链表长度必须大于等于后面的链表长度. 分析: (1)首先计算链表总长len (2)根据len得到分隔的链表长度要么为size, ...

  3. Spark入门:第2节 Spark集群安装:1 - 3;第3节 Spark HA高可用部署:1 - 2

    三. Spark集群安装 3.1 下载spark安装包 下载地址spark官网:http://spark.apache.org/downloads.html 这里我们使用 spark-2.1.3-bi ...

  4. underscore.js -2009年发布的js库

    2009 Underscore.js 0.1.0发布 Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它是这个问题的 ...

  5. Nodejs回调加超时限制两种实现方法

    odejs回调加超时限制两种实现方法 Nodejs下的IO操作都是异步的,有时候异步请求返回太慢,不想无限等待回调怎么办呢?我们可以给回调函数加一个超时限制,到一定时间还没有回调就表示失败,继续后面的 ...

  6. WEB, Flask - Session&Cookie

    参考: https://blog.csdn.net/nunchakushuang/article/details/74652877 http://portal.xiaoxiangzi.com/Prog ...

  7. [Linux] day03——REHL部署

    REHL 部署 Linux 树形目录结构  最顶层 根 / 在Linux中 一切皆文件 文件系统 swap / 安装方式 PXE U盘 光盘 配置安装程序 选择包   5.9    6.4

  8. 再论谭浩强《C语言程序设计》

    一些同学学不好C语言,把罪责归于“因为教材是谭浩强写的”实在是很滑稽. 谭浩强老先生 1934 年生,现在已经 80 岁了.他 1958 年从清华大学自动控制系毕业,那年 24 岁.要知道 C 语言那 ...

  9. 【快学springboot】1.快速创建springboot项目

    若图片查看异常,请前往掘金查看:https://juejin.im/post/5d00e793f265da1b614ff10b 使用spring initialize工具快速创建springboot项 ...

  10. 新建Django 项目完整流程

    1) 在桌面或者其他文件 新建项目名称 (mkdir 新建文件夹) 2)进入文件夹  pipenv --python3(用命令提示粘贴复制, 自己这样写经常有问题) 3) 启动虚拟环境  pipenv ...