NFA到DFA的转换(很多JAVA细节)

3 篇文章 0 订阅
1 篇文章 0 订阅

TreeSet其实是使用红黑树实现,和哈希没有关系,排序时不调用hashCode,HashSet会调用hashCode取得对象保存的位置,当同调用默认toString时会使用hashCode生成String

TreeSet排序时不主动调用equals(存疑),但是会主动调用compareTo

当对象不能比大小时,只能确定其是否相等,会先调用hashCode,hashCode相等时会调用equals

TreeSet中与比较大小相关的属性被改变时,不会对其重新排序,目前较好的做法是移除原来的对象,改变后重新插入

面向对象的过程中不能用力过猛,有一些实现可以留给其他模块

还有个最奇怪的,Set、List这些容器中保存另一个容器时,比较是否相等时好像是比较最内部的对象,而不是内层的容器对象就像这里hh1不包含hashSet2但是打印的时true,但如果把注释加上,打印变为false(有时间一定研究一下,这个很重要)

       P p1 = new P(),p2 = new P(), p3 = new P();
       hashSet1.add(p1);
       hashSet2.add(p1);
       //hashSet1.add(p2);
       hh1.add(hashSet1);
       hh2.add(hashSet2);
       System.out.println(hh1.contains(hashSet2));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值