第十八天 - 知识点总结

  • set里面的元素都是去重复的,但是这种重复的判定是有区别的:
    • HashSet 在HashSet中判断两个元素是否是同一的元素,首先是比较两个元素的hash码是否相等,如果hash码不一样,则两个元素必定不相同,如果hash码一样,就判定equals函数的结果。 所以如果要用HashSet装对象,这个对象就应该重写hashCode() 和 equals(Object obj)这两个函数。 否则就还是沿用了Object类中的这两种方法,即equals函数只比较引用是否相等。
    • TreeSet 是要进行排序的,所以TreeSet要装的对象是必须实现了Comparable接口并重写了compareTo()函数。 所以在compareTo()函数中既完成了排序的规则,也完成了两个元素是否相等的判断。
  • 哈希存储 - 只要能设计出一个好的哈希函数就是存取性能都特别好的存储方案
    好的哈希函数应该是让相同的对象产生相同的hash码,让不同的对象尽可能产生不同的hash码
    哈希存储或者哈希函数有的地方称之为散列存储或者散列函数
    如果要使用HashSet 那么一定要重写两个方法:
    • hashCode() --> 让相同的对象产生相同的hash码,让不同的对象尽可能产生不同的hash码
    • equals() --> 定义比较两个对象的规则(引用、类型、属性)
    • 自反性
      • 对称性
    • 传递性
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,757评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,804评论 18 399
  • Java集合框架 Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述...
    小石38阅读 386评论 0 0
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,295评论 0 16
  • 即将来临的独立日 那些结束校园 踏入社会的人儿们啊 兵荒马乱 各自为阵 有的人 慌里慌张的找着 有的人 乐此不疲的...
    张梓夕阅读 215评论 0 2