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

Collection中Set集合在应用中常见的方法和注意点的更多相关文章

  1. Java中的集合框架(中)

    Map和HashMap Map接口 1.Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value 2.Map中的键值对以Entry类型的对 ...

  2. Java入门第三季——Java中的集合框架(中):Map&HashMap

    package com.imooc.collection; import java.util.HashSet; import java.util.Set; /** * 学生类 * @author Ad ...

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

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

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

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

  5. WPF Xaml中创建集合

    首先在xaml中创建集合是一个不可取的方法. 本方法仅作为xaml的学习. 本文略微无聊,主要是编写的东西都是老玩意. 首先是定义一个类,作为你要加载集合的模型. 结构如下 internal clas ...

  6. Collection中list集合的应用常见的方法

    集合 : 用存放对象的容器(集合)     Collection : 跟接口 : 单列集合          ---> List :有序的 ,元素是可以重复的.          ---> ...

  7. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  8. Java中的集合框架-Collection(二)

    上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子 ...

  9. Java中的集合Collection接口

    /* 集合:集合是存储对象数据的集合容器.集合比数组的优势: 1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据. 2. 集合的长度是会发生变化的,数组的长度是固定的.----- ...

随机推荐

  1. linux 接口地址全部清除才清理从此接口发出的下一跳路由

    接口地址全部清除才清理从此接口发出的下一跳路由 如: eth7配置两个地址 eth7: 192.168.1.1 10.1.1.1 添加一条路由: route add -net 2.2.2.0/24 g ...

  2. shell脚本学习指南

    一.UNIX各个工具所支持的正则表达式: 二.使用sed在某一目录下建立一份目录备份: find /home/foo/ -type d -print | #找出/home/foo/目录下所有目录文件 ...

  3. 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]

    理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...

  4. AI (Adobe Illustrator)详细用法(一)

    一.新建文档 1.设置面板的各项参数 双击面板工具,会弹出“画板选项”窗口.画板就是最终会被输出的地方. 2.文档设置 文档设置好了以后,可以修改,在文件——>文档设置中打开修改. 二.界面设置 ...

  5. [转]Hide or Remove jquery ui tab based on condition

    本文转自:http://stackoverflow.com/questions/19132970/hide-or-remove-jquery-ui-tab-based-on-condition 问: ...

  6. Beyond IT

    Know Yourself <开讲啦> 20160306 潘建伟:探索的动机

  7. hdu-5127------hdu5137

    hdu-5127 思路: 本来正解好像是动态凸包,暴力10000+ms可以搞过去; hdu-5128 思路: 枚举两个长方形的对角线,然后判断是否不相交,更新答案就好; hdu-5130 思路: 将题 ...

  8. Codeforces Round #286 Div.1 A Mr. Kitayuta, the Treasure Hunter --DP

    题意:0~30000有30001个地方,每个地方有一个或多个金币,第一步走到了d,步长为d,以后走的步长可以是上次步长+1,-1或不变,走到某个地方可以收集那个地方的财富,现在问走出去(>300 ...

  9. SQL 编程

    用SQL编写程序首先我们要了解SQL的一些编程方法 1.使用变量 变量:是可以存储数据值的对象,可以使用局部变量向SQL语句专递数据. (1)局部变量 T-SQL中,局部变量的名称必须以标记@作为前缀 ...

  10. AC日记——逆波兰表达式 openjudge 3.3 1696

    1696:逆波兰表达式 总时间限制:  1000ms 内存限制:  65536kB 描述 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式 ...