关于TreeSet 的equals 和hashcode()问题

John_Tsui John_Tsui 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public class nstring  implements Comparable<nstring>{
public int i;
public nstring(int i){
this.i=i;
}
@Override
public int compareTo(nstring o) {
if(this.i>o.i)
return 1;
else if(this.i==o.i)
return 0;
else
return -1;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return String.valueOf(i);
}

public static void main(String[] args) {
Set<nstring> set=new TreeSet<nstring>();
set.add(new nstring(4));
set.add(new nstring(2));
set.add(new nstring(3));
set.add(new nstring(2));
System.out.println(set);
}

}


大家能说出答案?
还有我想问一个问题,这个为什么不能插入两个compare相等的对象
...全文

相关推荐

判断List和Map是否相等并合并List中相同的Map

今天小编就为大家分享一篇关于判断List和Map是否相等并合并List中相同的Map,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

weixin_38625416

Java回顾(六)Set集合

1、Set集合 1.1、Object中的hashCode值 默认情况下,不同对象的hashCode值是不相同的,除非之前已经把hashCode值重写了。 不同的英文单词的hashCode值是不相同的,但两个不同的中文字符返回的hashCode值有些确是相同的,原因是因为String里面重写了Object中的这个hashCode方法。 public class SetTest { public static void main(String[] args) { //hasCode返回值是int类型 System.out.println("hello".ha

weixin_38689824

java&c++概念及面试常问问题及解答

涵盖了笔试及面试中,面试官常问问题、帮助应届生求职获得好offer

linuxchaoge

实验05 Java集合.doc

掌握集合的概念、体系结构、分类及使用场景 2)了解Set接口及主要实现类(HashSet、TreeSet) 3)了解List接口及主要实现类(ArrayList、LinkedList、Vector) 4)了解Map接口及主要实现类(HashMap、TreeMap、HashTable) 二、实验内容及步骤 1、编写程序练习将以下5个Person类的对象放在一个HashSet中。 姓名:张三 身份证号:178880001 姓名:王五 身份证号:178880002 姓名:李四 身份证号:178880003 姓名:王五 身份证号:178880002 姓名:李四 身份证号:178880004 注意:因为Person类是自定义类,需要重写hashCode()方法和equals()方法,并规定只有姓名和身份证号都相等,则对象相等。 其中计算哈希码的算法:(31 + ((name == null) ? 0 : name.hashCode()))*31 + id (注:name:Person对象的姓名,id:Person对象的身份证号) 主方法中作如下测试: 1)创建一个可放置Person类对象的HashSet; 2)依次添加上述5个对象到HashSet中; 3)把集合中的元素打印出来(使用迭代器Iterator) 2、编写程序练习List集合的基本使用: 1) 创建一个只能容纳String对象名为names的ArrayList集合; 2)按顺序往集合中添加5个字符串对象:"张三"、"李四"、"王五"、"马六"、"赵七"; 3)对集合进行遍历,分别打印集合中的每个元素的位置与内容; 4)打印集合的大小,然后删除集合中的第3个元素,并显示删除元素的内容,然后再打印目前集合中第3个元素的内容,并再次打印集合的大小。 3、编写程序练习Map集合的基本使用: 1)创建一个只能容纳String对象的person的HashMap集合; 2)往集合中添加5个"键-值"对象: "id"-"1"; "name"-"张三"; "sex"-"男"; "age"-"25"; "hobby"-"爱学Java" 3)对集合进行遍历,分别打印集合中的每个元素的键与值; 4)打印集合的大小,然后删除集合中的键为age的元素,并显示删除元素的内容,并再次打印集合的大小。 四、思考题 1、集合中的List、Set、Map有哪些不同? 2、为什么使用集合框架,而尽可能少用数组作为存储结构? 3、如何使用TreeSet实现第一题?

作业写不完的卑微小cookie

HashSetTreeSetHomeWork

HashSetTreeSetHomeWork

槑可好
评论 13
收藏 已收藏
分享
返回顶部
John_Tsui
Java EE 67,535 成员 225,843 内容