java学习part36set

157-集合框架-Set不同实现类的对比及Set无序性、不可重复性的剖析_哔哩哔哩_bilibili

1.Set 

加入集合的时候会先调用重写的hash方法计算hash值,不一样就加入。

如果hash一样且equals也是true就是重复 ,调equals是为了保险,保证排除hash碰撞的可能。

2.Set的Hash和equals

必须重写hash方法,否则调用object的方法随机算了一个hash值,即便内容相同算出来的值也不一样,因为和你的内容无关,是随机算的。而重写的方法要根据你所有的内容算一个独特hash值。

注意:以上只适合HashSet及其子类,不适合TreeSet

 

3.TreeSet

类似于c++的set,对加进来的元素会天然排序。

1.因为需要排序,所以加入的类型必须能够比较,不能随意加入类型,必须结合泛型来限制传入的元素。

2.排序标准会根据重写的compareTo方法返回值来

3.而且因为底层是红黑树,所以不存在比较标准相同的两条,比如依据年龄排序,两个年龄相同的不同的人,后一个无法插入TreeSet

3.1加入类型不能不一致

3.2重写比较方法

比较有两种,自然排序和定制排序。

定制排序需要在构造的时候预留定制对象compartor传入位置,但是可以根据需要传入不同的比较规则。比较多样灵活。如果不写就是默认compareTo自然排序

而自然排序是在对象内部compareTo设计好的一种方法。但是方法比较单一,不能随意改

 

 

3.3

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据误删除恢复

1.1 问题简述 开发反馈误删除了部分业务数据,需要恢复数据。 这里采用binlog2sql工具进行数据回滚。 1.2 环境 CentOS Linux release 7.4.1708 (Core) mysql Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL) 1.3 数据库开启binlog 因为数据库serve…

Windows环境下RocketMQ的安装及配置

目录 1.环境准备2.下载RocketMQ3.配置RocketMQ环境变量4.启动RecoketMQ4.1启动 name server4.2 启动 broker 5、启动报错问题解决5.1 java_HOME变量找不到5.2 启动闪退问题 1.环境准备 JDK和Maven需要先安装好。 RocketMQ是用Java语言写的,所以需要JDK的支持。 后面…

Mac电脑vm虚拟机 VMware Fusion Pro中文 for mac

VMware Fusion Pro是一款功能强大的虚拟机软件,适用于需要在Mac电脑上运行其他操作系统的用户。它具有广泛的支持、快速稳定的特点以及多种高级功能,可以满足用户的各种需求和场景。 多操作系统支持:VMware Fusion Pro允许在Mac电脑上运行多…

Wireshark中的TCP协议包分析

Wireshark可以跟踪网络协议的通讯过程,本节通过TCP协议,在了解Wireshark使用的基础上,重温TCP协议的通讯过程。 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传…

人工智能-机器翻译:技术发展与代码实战

在本文中,我们深入探讨了机器翻译的历史、核心技术、特别是神经机器翻译(NMT)的发展,分析了模型的优化、挑战及其在不同领域的应用案例。同时,我们还提出了对未来机器翻译技术发展的展望和潜在的社会影响。 关注TechLe…

Shopee买家通系统自动下单更方便

Shopee购物平台的买家通系统为用户提供了一种便捷的自动下单方式,通过这一系统,用户可以轻松实现在虾皮平台购买商品的自动化操作。下面将介绍具体的操作流程,确保用户可以顺利完成整个购物流程。 首先,用户需要准备一个可用的虾皮…

Leetcode—205.同构字符串【简单】

2023每日刷题&#xff08;五十&#xff09; Leetcode—205.同构字符串 算法思想 参考自k神思路 实现代码 class Solution { public:unordered_map<char, char> s2t, t2s;bool isIsomorphic(string s, string t) {int n s.size();for(int i 0; i < n; i) {char …

Django宠物之家平台

摘 要 随着互联网的快速发展&#xff0c;利用网络的管理系统也逐渐发展起来。在线管理模式快速融入了众多用户的眼球&#xff0c;从而产生了各种各样的平台管理系统。 关于本django宠物的家庭平台管理系统的设计来说&#xff0c;系统开发主要采纳Python技术、B/S框架&#xff…

四川云汇优想:抖音直播等级怎么升级?

抖音直播&#xff0c;作为当前最热门的社交平台之一&#xff0c;其等级体系一直备受用户关注。如何在抖音直播中迅速提升等级&#xff0c;成为众多用户探讨的话题。在这篇文章中&#xff0c;我们将深入探讨抖音直播等级的升级机制、好处以及一些实用的技巧&#xff0c;助你在抖…

拼多多市值大于淘宝

一分钟速览新闻点&#xff01; 拼多多市值一夜大涨 2000 亿&#xff0c;市值逼近阿里 华为推出员工转岗新公司补偿方案&#xff0c;已邀请 4 家智选车伙伴入股 雷军个人向武大捐赠 13 亿元现金&#xff0c;创全国高校单笔个人现金捐赠纪录 阿里云北上深等地访问异常&#xf…

融云 CEO 董晗获评甲子光年「2023 中国数字经济创新人物」

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 11 月 30 日-12 月 1 日&#xff0c;甲子光年“甲子引力年终盛典”在北京举办&#xff0c;以“致追风赶月的你”为主题&#xff0c;深刻回顾了 2023 年国内外的科技发展历程…

疑难杂症 之 关闭模态窗口之后刷新父窗口

疑难杂症 之 关闭模态窗口之后刷新父窗口 1. 模态窗口 与 非模态窗口2. 弹出模态窗口2.1 实现效果2.2 实现代码2.2.1 刷新父窗口2.2.2 完整代码 2.3 参考 3. 其他刷新父窗口&#xff08;模态窗口页面与父窗口不在同一页面&#xff09;3.1 实现代码3.1.1 核心代码3.1.2 多层模态…

钉钉聊天审计软件有哪些

钉钉在企业中的广泛应用&#xff0c;聊天审计软件也日益受到关注。这类软件主要针对企业微信、钉钉等即时通讯工具&#xff0c;对其中的聊天记录进行审计&#xff0c;以便企业能够更好地管理员工的在线行为&#xff0c;并保障信息安全。 一、聊天审计软件的作用 1、监管员工行…

打表技巧——买苹果

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 买苹果1.1 题目描述1.2 解决思路1.3 代码实现 &#x1f48e;总结 买苹果 1.1 题目描述 小虎去买苹果&#xff0c;商店只提供两种类型的塑料袋&#xff0c;每种类型都有任意数量 1)能装下6个苹果的袋子 2)能装下8个…

服务器巡检表

《服务器巡检表》检查项&#xff1a; 1、系统资源 2、K8S集群 3、Nginx 4、JAVA应用 5、RabbitMQ 6、Redis 7、PostgreSQL 8、Elasticsearch 9、ELK日志系统 获取软件开发全套资料进主页。

理解js中原型链的封装继承多态

前言 面向对象有三大特性:封装继承多态。 不过,js和java的封装继承多态是不一样的,我和从事java开发的朋友有过一次对话(抬杠 !--)。 我说:javascript也是面向对象语言, 他说:不对吧,js不是面向对象吧。 我说:是的,官方说的就是面向对象语言。 他说:那你知道三大特性吗?…

数据结构——希尔排序(详解)

呀哈喽&#xff0c;我是结衣 不知不觉&#xff0c;我们的数据结构之路已经来到了&#xff0c;排序这个新的领域&#xff0c;虽然你会说我们还学过冒泡排序。但是冒泡排序的性能不高&#xff0c;今天我们要学习的希尔排序可就比冒泡快的多了。 希尔排序 希尔排序的前身是插入排…

【C语言】指针与数组的潜在联系

目录 前言 改变固有数组的平面思维 注意&#xff1a; 数组操作与指针等价 指针数组 数组指针 笔试加深理解&#xff1a; 解析&#xff1a; 前言 《C Traps and Pitfalls》(C语言缺陷与陷阱)中有一句著名的见解&#xff1a; “在C语言中&#xff0c;指针与数组这两个概念…

【华为数据之道学习笔记】1-2华为数字化转型与数据治理

传统企业通过制造先进的机器来提升生产效率&#xff0c;但是未来&#xff0c;如何结构性地提升服务和运营效率&#xff0c;如何用更低的成本获取更好的产品&#xff0c;成了时代性的问题。数字化转型归根结底就是要解决企业的两大问题&#xff1a;成本和效率&#xff0c;并围绕…

linux基础五:linux 系统(进程状态+进程优先级+调度和切换+环境变量)

linux 系统 一.进程状态&#xff1a;1.睡眠状态(sleep)&#xff1a;2.磁盘休眠状态(disk sleep)&#xff1a;3.停止状态(stoped --- T)&#xff1a;4.死亡状态&#xff1a;5.控制状态&#xff08;t&#xff09; 二.僵尸进程和孤儿进程&#xff1a;1.僵尸状态&#xff1a;2.孤儿…