集合(set)是一个用于存储和处理无重复元素的高效数据结构。映射表(map)类似于目录,提供了使用键值快速查询和获取值的功能。

 

  HashSet类是一个实现了Set接口的具体类,可以使用它的无参构造方法来创建空的散列集(hash set),也可以由一个现有的合集创建散列集。

  当元素个数超过了容量与负载系数的乘积,容量就会自动翻倍。 默认情况,初始容量为16而负载系数是0.75。

  HashSet  散列类

  集合种不允许有重复的元素。

  散列集种的元素是没有特定顺序的。如果要强加给它们一个顺序,需要使用 LinkedHashSet类

  集合中的元素可以遍历。可以使用 foreach循环遍历集合中的所有元素。

foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}

set1.add("set2")   增加元素

set1.remove("set2") 移除元素
set1.contains(set2) 查找有无该元素,有返回true ,没有返回false
set1.addAll(set2)  添加所有元素
set1.removeAll(set2) 删除所有元素
set1.retainAll(set2) 保留共有的元素
set1.clean()          清空
 
LinkedHashSet类  链式散列集
LinkHashSet用一个链表实现来扩展HashSet类,支持对集合内的元素排序。
元素按插入顺序存储。保持了元素插入是的顺序。如果要强加一个不同的顺序(如升序降序),可以使用TreeSet类。
 
TreeSet类  树形集
SortedSet 是 Set 的一个子接口,确保集合中的元素是有序的。 first()和last()返回集合中的第一个元素和最后一个元素,headSet(toElement)和tailSet(fromElement)分别返回集合中元素小于(toElement) 和 大于或等于(fromElement)的那部分。
navigableSet 扩展了 SortedSet, 并提供导航方法 lower(e)、floor(e)、c eiling(e)和higher(e)分别返回小于、小于等于、大于等于 以及大于 给定一个元素的元素。 如果没有 ,返回null。方法 pollFirst()和pollLast()分别删除和返回树形集种的第一个元素和最后一个元素。
TreeSet 实现了 SortedSet 接口。
 
 ------------------------------------
 
  当更新一个集合时,如果不需要保持元素的排序关系,就应该使用散列集,因为在散列集中插入和删除元素所花的时间比较少。 当需要一个排好序的集合时,可以从这个散列集创建一个树形集。
 
问题1:如果向树形集内添加一个不能与已有元素进行比较的元素,会发生什么情况?
   
 
 
 

集合类Hash Set,LinkedHashSet,TreeSet的更多相关文章

  1. java集合框架之几种set(HashSet LinkedHashSet TreeSet )

    参考http://how2j.cn/k/collection/collection-sets/691.html#nowhere HashSet LinkedHashSet TreeSet HashSe ...

  2. HashSet LinkedHashSet TreeSet 分析

    1.HashSet分析 hashset 底层是hash表,就是hashMap,是无序的,唯一的.也就是说,它的底层其实就是一个HashMap  key 值的组成值.所以具有唯一性. public Ha ...

  3. HashSet,LinkedHashSet,TreeSet的区别

    Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用eq ...

  4. JDK源码学习笔记——HashSet LinkedHashSet TreeSet

    你一定听说过HashSet就是通过HashMap实现的 相信我,翻一翻HashSet的源码,秒懂!! 其实很多东西,只是没有静下心来看,只要去看,说不定一下子就明白了…… HashSet 两个属性: ...

  5. Java 基础 - Set接口 及其实现类HashSet/LinkedHashSet/TreeSet

    笔记: /**Set接口 及其实现类 * 公用操作同Collection: * * ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法 ...

  6. [集合Set]HashSet、LinkedHashSet TreeSet

    Set Set是不包含重复元素的集合.更正式地,集合不包含一对元素e1和e2,使得e1.equals(e2),并且最多一个空元素. 无索引,不可以重复,无序(存取不一致) Set接口除了继承自Coll ...

  7. TreeSet, LinkedHashSet and HashSet 的区别

    1. 介绍 TreeSet, LinkedHashSet and HashSet 在java中都是实现Set的数据结构 # TreeSet的主要功能用于排序 # LinkedHashSet的主要功能用 ...

  8. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]

    ------------ Set ------------------- 有序: 根据添加元素顺序判定, 如果输出的结果和添加元素顺序是一样 无序: 根据添加元素顺序判定,如果输出的结果和添加元素的顺 ...

  9. Java集合系列(三):HashSet、LinkedHashSet、TreeSet的使用方法及区别

    本篇博客主要讲解Set接口的三个实现类HashSet.LinkedHashSet.TreeSet的使用方法以及三者之间的区别. 注意:本文中代码使用的JDK版本为1.8.0_191 1. HashSe ...

随机推荐

  1. spring-sevlet简单配置

    <<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www ...

  2. Win7、win8、win10下实现精准截获Explorer拷贝行为

    介绍了windows下对Explorer的拷贝动作的精确截获,这个在企业数据安全dlp产品系列中减少审计的噪音很有效,方便运营人员做针对性的审计. 在企业数据安全中我通常需要监测用户的拷贝行为,特别像 ...

  3. TCP keepalive的详解(解惑)

    TCP是面向连接的,一般情况,两端的应用程序可以通过发送和接收数据得知对端的存活. 当两端的应用程序都没有数据发送和接收时,如何判断连接是否正常呢? 这就是SO_KEEPALIVE的作用. 1. SO ...

  4. 浏览器端-W3School-HTML:HTML DOM Area 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Area 对象 1.返回顶部 1. HTML DOM Area 对象 Area 对象 Area 对象代表图像映射的一个区域(图像 ...

  5. ERROR: Command "python setup.py egg_info" python-nss

    [root@localhost ~]# pip install python-nss DEPRECATION: Python 2.7 will reach the end of its life on ...

  6. nodejs 之简单web服务器

    1.service.js var http=require('http');//引入http模块 var fs=require('fs');//fs模块 var path=require('path' ...

  7. Windows下配置DVWA

    VWA是用PHP+MySQL编写的一套用于常规Web漏洞教学和检测的Web脆弱性测试程序,包含了SQL注入.XSS.盲注等常见的一些安全漏洞,是一个非常好的网络安全实验平台. 环境配置比较简单, 步骤 ...

  8. git clone的代码没有前端代码

    需要切换到文件夹目录下,然后 git checkout dev 切换到开发环境(其实是切换到了dev分支) 后来查看分支,发现有两个分支:master 和 dev . ================ ...

  9. 使程序在Linux下后台运行,程序运行前后台切换

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

  10. CMake下,某些选项的后调整

    编译安卓NDK库时,发现在R15的NDK编译出来的库,总是带了-g选项,导致附带调试,文件过大. 搜索一番后,结论是NDK的文件中有问题: https://github.com/android/ndk ...