JAVA---集合子接口之Set
Set接口
特点1:无序,存储的元素与添加顺序无关
特点2:不可重复(使用元素的equals方法来判定是否重复)
特点3:能存储null元素,只能存储一次。
Hash算法机制
Set集合在添加或查看元素时,当集合中的元素过多时,就会进行多次的比较,效率变低。为了提高效率,在设计元素类型时,提供hash算法,用于返回对象的一个int值。在内存中开辟很多小的区域,用于存储一定范围返回值的对象。
当我们想添加元素或查看元素时,先计算此元素的返回值,然后去相应区域中查找遍历,
如果在这个区域没有找到对象,说明集合中可以存储这个对象。如果有,然后查看两个对象的equals的返回值。
equals返回值为true,不能添加
equals返回值为false,可以添加,添加至对应的单向链表结构中(尽可能的避免发生)
Set接口派生出的子类
HashSet:通过实现hash算法的一种数据结构,无序,不重复。增加/删除时效率高。
LinkedHashSet:通过实现hash算法的一种数据结构,但是通过链表来维持顺序。
顺序与添加顺序一致,在查看检索时效率比较高。
TreeSet:是SortedSet子接口的实现类,使用二叉树的数据结构存储数据并维护元素的顺序。
Set集合的遍历
因为Set集合是无序的,无下标可言,因此不能使用经典for循环。我们可以使用迭代器原理。
(1)调用集合的iterator()获取迭代器
(2)使用foreach循环
JAVA---集合子接口之Set相关推荐
- Java集合Collection接口中的常用方法演示
Java集合Collection接口中的常用方法演示 添加 add(Objec tobj) 和 addAll(Collection coll) 获取有效元素的个数 int size() 清空集合 vo ...
- java集合框架——接口图+类图+遗留类图
[0]README 0.1)绝对的干货,理清 java集合框架中类和接口的层次关系:
- JAVA集合Connection接口和Map接口常用的类及区别
JAVA集合详解 文章目录 JAVA集合详解 前言 一.集合是什么? 1. 集合类 2.集合和数组的区别: 二.使用步骤 一.Connection接口(单列集合) 1.List和Set的优缺点 2.总 ...
- Java集合——List接口学习总结
一.ArrayList实现类 1. 常用方法 增加:add(int index, E element)删除:remove(int index) remove(Object o)修改:set(int i ...
- Java集合的接口和类层次结构图以及代码示例
1. Collection vs Collections 首先,"Collection"和"Collections"是两个不同的概念.正如你从下面结构图看到的, ...
- Java集合---Collection接口的常用方法
Collection常用方法 size() 功能说明 返回当前集合中元素的总数量 代码实现 import java.util.ArrayList; import java.util.Collectio ...
- Java集合——Map接口学习总结
一.HashMap实现类 1.常用方法 增加:put(K key, V value)删除:clear() remove(Object key)修改:查看:entrySet() get(Object k ...
- java集合的接口和类层次结构图
1. Collection vs Collections 首先,"Collection "和"Collections"是两个不同的概念. 正如下面的层次结构图中 ...
- 第十五期:详解Java集合框架,让你全面掌握!
一.Java集合框架概述 集合可以看作是一种容器,用来存储对象信息.所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下. 数组与集合的区别如下 ...
- Java集合框架--List、Set、Map
Java集合框架接口和类的层次结构: java.util.Collection [I] +--java.util.List [I]+--java.util.ArrayList [C]+--java.u ...
最新文章
- 不想被问年终奖?2018年春节自救攻略来了!
- tap/tun设备 veth设备
- 均值定理最大值最小值公式_如何理解中值定理?三大微分中值定理的几何意义及其证明介绍。...
- Spring依赖注入–字段vs设置器vs构造函数注入
- python枚举类的意义_用于ORM目的的python枚举类
- fpga如何约束走线_FPGA设计约束技巧之XDC约束之I/O篇 (上)
- 雷军:疫情影响了小米的生产 正加快小米10系列供货
- matplotlib之plot,figure(笔记一)
- PHP5.3版本安装
- python黑帽子学习
- cs1.6服务器弹道优化,CS1.6弹道优化命令.doc
- 建模算法(十)——灰色理论之关联度分析
- WinDriver驱动程序开发入门教程
- excel单元格中换行的办法/word中添加脚注的方法
- 个人博客的Travis持续集成之路
- 网友发现Q版西游:唐僧师徒脸谱上50元人民币
- 人脸识别(Facenet)
- Python杀死Excel?众多模块哪家强
- long型和int型的区别
- idea从零到精通02之idea基础设置
热门文章
- 样本均值的特征与分布
- (转)TTime, TDateTime
- 对话张冬洪 | 全面解读NoSQL数据库Redis的核心技术与应用实践
- centos7 安装最新rabbitmq,并设置开机自启
- python上传百度云_python通过百度云api的方式上传或下载文件
- Formal Verification (三) abstraction strategy、reduce complexity for convergence
- 不存在开发板或没有链接_手把手教你搭建织女星开发板RISC-V开发环境
- 你当前的windows版本即将停止支持。
- 形式逻辑(07)性质判断 和 推理
- ONF代理执行董事Rick Bauer出走MEF