zoukankan      html  css  js  c++  java
  • Set<E> 接口简明

    java. util. Set 接口
    Set 接口中的方法和 Collection 中方法一致的。Set 接口取出方式只有一种, 迭代器 。


    • HashSet : 底层数据结构是哈希表,线程 是不同步的 。 无序,高效;HashSet 集合保证元素唯一性 :通过元素的 hashCode 方法,和 equals 方法完成的。当元素的 hashCode 值相同时,才继续判断元素的 equals 是否为 true。如果为 true,那么视为相同元素,不存。如果为 false,那么存储。如果 hashCode 值不同,那么不判断 equals,从而提高对象比较的速度。
    • LinkedHashSet : 有序,hashset 的子类。
    • TreeSet : 对 Set 集合中的元素的进行指定顺序的排序。 不同步 。TreeSet 底层的数据结构就是二叉树。

    对于ArrayList 集合,判断元素是否存在,或者删元素的依据都是equals 方法。
    对于HashSet 集合,判断元素是否存在,或者删除元素,依据的是 hashCode 方法和 equals 方法。


    TreeSet:

    用于对 Set 集合进行元素的指定顺序排序,排序需要依据元素自身具备的比较性。
    如果元素不具备比较性,在运行时会抛出ClassCastException 异常。

    • 所以元素需要实现Comparable 接口 ,让元素具备可比较性, 重写 compareTo 方法 。依据 compareTo 方法的返回值,确定元素在 TreeSet 数据结构中的位置。
    • 或者用比较器方式,将Comparator对象传递给TreeSet构造器来告诉树集使用不同的比较方法
  • 相关阅读:
    PLSQL快捷补充代码设置
    VS2012未找到与约束ContractName...匹配的导出
    VS2012下安装NuGet
    360°全景效果展示
    ArcGIS应用——四种计算图斑面积的方法
    ArcGIS应用——使用Python为图斑连续编号及扩展应用
    Shapefile点图层转换为Shapefile线图层
    SharpMap开发教程——图层标注
    SharpMap入门教程
    常用SQL语句集锦
  • 原文地址:https://www.cnblogs.com/LittleTreasureBox/p/8824219.html
Copyright © 2011-2022 走看看