HashSet 和 TreeSet



//HashSet基于HashMap实现的,利用了HashMap键不能重复的特点;不可以排序
创建一个HashSet对象: HashSet set = new HashSet;

//TreeSet可以排序(根据内容进行排序)  可以对数字和字符串进行排序,因为实现Comparable接口

Comparable接口  如果接口中方法返回0 表示相等~~~
创建一个TreeSet对象: TreeSet set = new TreeSet;

//如何判断重复元素~~~~

1.只要obj == obj1  认为obj与obj1是相同的元素(地址相等~)

2.equals 与 hashCode 同时相等的时候,认为是相同的元素

代码:

class Person implements Comparable{

String name;

int age;

@Override //自定义输出的时候

public String toString() {

return "name = " + this.name +" "+ "age = " + age;

}

@Override//自定义相等的规则

public boolean equals(Object obj) {

//如果类型不相同 返回false

if (!(obj instanceof Person)){

return false;

}

//如果名字一样 返回true

if (((Person) obj).name.equals(this.name)) {

return true;

}

//如果名字不相同 返回false

return false;

}

//hashCode

@Override  //计算一个对象的hash值

public int hashCode() {

return this.name.hashCode();

}

//实现Comparable 接口

@Override

public int compareTo(Object o) {

//防止程序崩溃

if (o instanceof Person) {

Person p = (Person)o;

if (this.age > p.age) {//大

return 1;

}else if (this.age == p.age) {//相等

return 0;

}else {//小

return -1;

}

}

return 0;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,811评论 18 399
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,271评论 0 62
  • 上一篇文章介绍了Set集合的通用知识。Set集合中包含了三个比较重要的实现类:HashSet、TreeSet和En...
    Ruheng阅读 16,161评论 3 57
  • 批判性思维的三个方面 有一套相互关联,环环相扣的关键问题的意识 恰如其分的提出和回答关键问题的能力 积极主动地利用...
    星期六1111阅读 968评论 0 1
  • 一直以来我都是一个不爱做计划和总结的人,工作时做计划和总结都觉得是很无聊的一件事。还记得以前有一个领导在和我讲计划...
    吴丽波阅读 257评论 0 0

友情链接更多精彩内容