• hashset 和 treeset


    set是接口

    hashset是实现了set接口的类,集合数据结构是哈希表,使用hashcode方法来确定位置,如果位置相同,通过元素的equals来确定是否相同

    由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。

    从类java.util.Set继承的方法有:equals  hashCode  removeAll

    ==============================================================================================================================

    map是接口

    TreeMap是实现map接口的类

    如果要正确实现 Map 接口,则有序映射所保持的顺序(无论是否明确提供了比较器)都必须与 equals 一致(关于与 equals 一致 的精确定义,请参阅 ComparableComparator

    Comparable接口:compareTo(t o)为其方法

    Comparator接口:compare(t o1,t o2)   equale(object obj)为其方法

     =============================================================================================

    treeset不考虑hashcode 和 equals,但由于treeset实现的是set接口,会给元素排序,且不允许元素重复,故treeset对元素实现排序方式之一:让元素实现compareable接口,覆盖compareTo方法(按照元素的默认方式进行排序)

    如果不需要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序(即导入的对象包不是自己定义的)这时可以使用treeset集合的第二种排序方式(让集合自身具备比较功能,在集合对象创建的时候就建立一个比较器):定义一个类实现comparetor接口,覆盖compare方法,将该类对象作为参数传递给treeset集合的构造函数(api文档构造方法摘要)。

    注:元素实现compareable接口和集合比较器同时存在,使用的是集合比较器

  • 相关阅读:
    HTML5新媒体元素
    概述
    (一)最小可行化应用
    JSON
    ajax的工作原理
    R语言学习笔记(四)
    R语言学习笔记(一)
    转:禅道的数据库结构
    转:bug的分类和等级
    转:如何定义 Bug 的优先级
  • 原文地址:https://www.cnblogs.com/judylucky/p/3613999.html
Copyright © 2020-2023  润新知