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:底层是使用二叉树来存放数据的。

转载于:https://www.cnblogs.com/houjiie/p/6121891.html

Collection中Set集合在应用中常见的方法和注意点相关推荐

  1. java中的集合框架_JAVA中的集合框架(上)List

    第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...

  2. Java中List集合去除重复数据的六种方法

    方法1 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list ...

  3. Java入门第三季——Java中的集合框架(中):MapHashMap

    1 package com.imooc.collection; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 /** 7 * 学生 ...

  4. python中的集合类型_Python中的集合类型知识讲解

    >>> s.add('z') >>> s set(['c', 'e', 'h', 'o', 'p', 's', 'z']) >>> s.updat ...

  5. java list map 去重复_Java中List集合去除重复数据的六种方法

    1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list. ...

  6. 【慕课笔记】第五章 JAVA中的集合框架(中) 第1节 MapHashMap简介

    第1节 Map&HashMap简介 Map接口 Map提供了一种映射关系,其中的元素是以键值对的形式存储的,能够实现根据key快速查找value Map中的键值对以Entry类型的对象实例形式 ...

  7. java 中map_Java中Map集合

    1. Java中Map集合 1. Map中value可以重复,key不能重复.对于重复的key值来说,后放置的值对覆盖前放置的值. import java.util.HashMap; public c ...

  8. java list 前100个_实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

  9. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

最新文章

  1. 协程asyncio_Python 异步模块 asyncio 中的协程与任务
  2. Spring的核心机制依赖注入,Junit测试与Java基础Getter和Setter两种方法意义——2017.07.26...
  3. 小程序底部弹窗css_微信小程序之animation底部弹窗动画(两种方法)
  4. 程序员常见保健方法【转贴】
  5. 在jsp页面下, 让eclipse完全支持HTML/JS/CSS智能提示
  6. 数据网站(数据集的获取)、打分网站
  7. 什么平台给了社区站长机会
  8. 楼下邻居是事逼怎么办
  9. 柳絮飘,往事忆:前言
  10. pytorch历史版本下载_Pytorch、Anaconda安装、Navidia版本更新
  11. 【ChatGPT】GPT-4
  12. 为什么电子邮件的账号地址公司是统一的,电子邮件地址该怎么写?
  13. Mac上iPad Pro高清桌面动态壁纸
  14. vmware 虚拟机启动失败, Intel VT-x 处于禁用状态
  15. android 默认启动器,安卓启动器_安卓默认启动器如何替换?
  16. CentOS: Kernel panic - not syncing: Fatal exception
  17. php 对图片缩放,php 图片等比例缩放和截图
  18. 黄聪:黄金分割——设计师的设计利器
  19. 四:es聚和函数Aggregations
  20. 像学画画一样的学程序研发

热门文章

  1. 1837Balance
  2. delphi 的一些备忘
  3. C#学习日志三(流程控制语句)
  4. vuecli3+webpack4优化实践(删除console.log和配置dllPlugin)
  5. java api使用ElastichSearch指南
  6. SpringEL expression:
  7. IOS 为UILabel添加长按复制功能
  8. Linux(Fedora21)安装google chrome浏览器
  9. 关于webstorm 配置 banbel
  10. javax.servlet.jsp.JspTagException: