美文网首页
HashSet 和 TreeSet

HashSet 和 TreeSet

作者: B萌面超人 | 来源:发表于2017-09-11 17:39 被阅读0次


//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;

}

}

相关文章

网友评论

      本文标题:HashSet 和 TreeSet

      本文链接:https://www.haomeiwen.com/subject/ofmfsxtx.html