当前位置: 首页 > news >正文

几种Set的比较

几种Set的比较

- HashSet:不保证元素的添加顺序,底层采用哈希表算法,查询效率高。判断两个元素是否相等
equals方法返回为true要求hashCode值必须相等。即要求存入HashSet中的元素要覆盖equals方
法和hashCode方法
 
- LinkedHashSet是HashSet的子类,底层采用了哈希表算法以及链表算法,既保证了元素的添加
顺序,也保证了查询效率。但是整体性能要低于HashSet
 
- TreeSet不保证元素的添加顺序,但是会对集合中的元素进行排序。底层采用红-黑树算法,树结
构比较适合查询,但是添加的效率较低

各种Set集合性能分析

HashSet和TreeSet是Set集合中用得最多的集合。HashSet总是比TreeSet集合性能好,因为HashSet不需要额维护元素的顺序。
LinkedHashSet需要用额外的链表维护元素的插入顺序,因此在插入时性能比HashSet低,但在迭代访问(遍历)时性能更高。因为插入的时候即要计算hashCode又要维护链表,而遍历的时候只需要按链表来访问元素。
EnumSet元素是所有Set元素中性能最好的,但是它只能保存枚举类型的元素。

相关的集合计算

addAll将指定集合中的所有元素都添加到此集合中,如果在进行此操作的同时修改了指定的集合,那么将不能保证操作的正确性removeAll从指定的集合中移除包含在另一个集合中的元素,返回值为boolean,如果包含了要移除的对象则返回true否则false
retainAll仅仅保留集合中同时包含在指定集合的对象,其它的全部移除containsAll用来查看在该集合中是否存在在指定集合中的所有对象,返回true表示存在,否则false

相关文章:

  • 使用 ECK 在 Kubernetes 集群中管理 Elastic Stack
  • 在Qt中使用MySQL
  • java---SPFA算法---最短路(4)(每日一道算法2022.8.30)
  • 2382. 删除操作后的最大子段和--(phase2--day3)
  • 时间复杂度计算题
  • 不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了
  • SpringCloud之配置中心
  • C++征途 --- Stack(栈)容器和Queue(队列)容器
  • Mysql 用户权限设置 细分数据库、表操作
  • 车路协同、车联网、智慧交通、智能网联车、自动驾驶、无人驾驶、高精度地图
  • AtCoder Beginner Contest 266 A-G
  • 2022年全球MEMS传感器市场总体规模及应用细分研究报告
  • 设计模式之命令模式
  • 算法竞赛进阶指南 观光之旅
  • 可编程 USB 转串口适配器开发板 参数设置与修改
  • 《剑指offer》分解让复杂问题更简单
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • java多线程
  • JS函数式编程 数组部分风格 ES6版
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • MYSQL 的 IF 函数
  • node.js
  • Redis 懒删除(lazy free)简史
  • Vue组件定义
  • 安卓应用性能调试和优化经验分享
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 微服务核心架构梳理
  • 详解NodeJs流之一
  • 学习JavaScript数据结构与算法 — 树
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 正则表达式
  • $.ajax()方法详解
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (31)对象的克隆
  • (floyd+补集) poj 3275
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十三)Flask之特殊装饰器详解
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)jdk与jre的区别
  • (转)memcache、redis缓存
  • (转)程序员技术练级攻略
  • ***详解账号泄露:全球约1亿用户已泄露
  • .htaccess 强制https 单独排除某个目录
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net流程开发平台的一些难点(1)
  • .NET中使用Redis (二)
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @ModelAttribute 注解
  • [4.9福建四校联考]