• Collection中Set集合在应用中常见的方法和注意点


    Set集合 : 元素无序的,元素不允许重复。
          ---->HashSet  : 存值方式使用哈希表来存值的。  
                     原理 :  如果HashSet中存放对象 ,首先会调用对象的hashCode方法获取到哈希值,通过哈希值做移为等运算,
                     计算出元素在哈表中存储的位置。
                     情况一:如果算出的位置没有任何元素,可以直接将对象存放在该位置。
                     情况二:如果算出的位置存在元素,这个时候会调用将要存入的元素的equals方法和已经存在的元素做对比,
                     如果equals返回的是true那么就表示是重复元素,如果equals返回的是false直接将元素一样保存在该位置。
          ---->TreeSet : 里面存放的元素会根据自然顺序进行排序。
           
            使用注意点:
               1.如果添加的元素存在自然排序的特性,那么存入的元素就会通过自然排序进行排序。
               2.如果添加的元素,不具备自然排序的特性,那么着个时候必须要实现Comparable接口,将元素的比较规则定义到ComparTo方法中
                 comparTo的比较规则: 返回一个0,负数或正数 ,分别表示相等,小于和大于。
              
               3.如果添加的元素,不具备自然排序的特性,又没有实现Comparable接口 ,这个时候需要写在创建TreeSet对象是传一个比较器。
              
                比较器的定义方式:
                    自定义一个类实现:Comprator接口
                   
                     同实现Comprator中compar(Object o1 ,Objecto1)来指定元素比较的规则。
                     规则:返回一个0,负数或正数 ,分别表示相等,小于和大于。
                
                TreeSet:底层是使用二叉树来存放数据的。
     
     

  • 相关阅读:
    我的openwrt学习笔记(四):OpenWrt源码下载
    算法系列之“汉若塔”
    尖峰在线Oracle OCM实战 --开创国内Dtrace先河!
    Android开发屏幕适配知识点
    【cocos2d-js官方文档】十九、Cocos2d-JS单文件引擎使用指引
    PHP重载
    作为一个在城市打拼的人。
    关于马云最帅的照片是哪一张?!你们感受下!哈哈哈哈!(10P)
    Banana PI (香蕉派) 安装 ubuntu-core-14 最小核心的操作步骤
    (转载)偏序集的Dilworth定理学习
  • 原文地址:https://www.cnblogs.com/houjiie/p/6121891.html
Copyright © 2020-2023  润新知