Set接口

2023-10-26

Set接口简介
Set接口和List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。与List接口不同的是,set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
set接口主要有二个实现类,分别为HashSet和TreeSet,其中,HashSet根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找功能,TreeSet则是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序。

HashSet集合
HashSet是Set接口的一个实现类,它所存储的元素不可重复,并且元素都是无序的,当向HashSet集合中添加元素时,首先会调用对象的hashCode()方法来计算对象的哈希值,从而确定元素的存储位置,如果此时哈希值相同,再调用对象的equals()方法来确保该位置没有重复元素。

import java.util.*
public class example{
public static void main(String[ ] args){
HashSet set = new HashSet();
set.add(“jack”);
set.add(“rose”);


HashSet集合之所以能确保不出现重复的元素,是因为它在存入元素时做了很多工作,当调用HashSet集合的add()方法时,首先调用当前存入对象的hashCode()方法来获得对象的哈希值,然后根据对象的哈希值计算出存储位置,如果该位置上没有元素,则直接将元素存入,如果该位置有元素存在,则会调用equals()方法让当前存入的元素依次和该位置上的元素进行比较。如果返回结果为false就将该元素存入集合,如果返回结果为TRUE则说明有重复元素,就将该元素舍弃。

根据前面的分析,当向集合存入元素时,为了保证HashSet正常工作,要求在存入对象时,重写Object类中的hashCode()方法和equals()方法

public int hashCode(){
return id.hashCode();

public boolean equals(Object obj){

return …

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Set接口 的相关文章

  • mysql_install_db命令详解_Mysql_install_db相关介绍

    mysql install db 脚本的目的是生成新的MySQL授权表 它不覆盖已有的MySQL授权表 并且它不影响任何其它数据 如果你想要重新创建授权表 首先停止mysqld服务器 如果它正运行 然后重新命名数据目录下的MySQL目录并保
  • STM32仿真必须点三次才能运行

    STM32仿真必须点三次才能运行 STM32下载完程序后 不能运行 于是进行仿真 但仿真需要点击三次全速运行才能运行 而且运行起来后未发现异常 最后排查到程序中有一处用到了printf 函数 而我的串口打印不是利用这个函数实现的 于是将其删
  • 【数据结构】MaxHeap 大顶堆

    数据结构源码 实现类 import java util Random public class MaxHeap
  • 残差网络(ResNet)

    随着我们设计越来越深的网络 深刻理解 新添加的层如何提升神经网络的性能 变得至关重要 更重要的是设计网络的能力 在这种网络中 添加层会使网络更具表现力 为了取得质的突破 我们需要一些数学基础知识 1 函数类 首先 假设有一类特定的神经网络架
  • [读书] 杂志

    http www spider com cn

随机推荐

  • CC++ qsort函数和sort函数

    qsort 函数和 sort 函数实现排序功能 前者是 C 语言内容 后者是 C 内容 下面逐一讲解 qsort 先来看一个对数组 arr 排序的例子 qsort 函数在 stdlib h 库中 使用时要包含该库文件 include
  • matlab的GUI怎么嵌入图片,如何用matlab在GUI中显示一张图片

    满意答案 nucynucy 2013 06 17 采纳率 47 等级 12 已帮助 10834人 建一个axes 在建一个按钮比如push button 就可以实现按钮函数的话比如 Executes on button press in p
  • Buffer分配

    一 char buf 128 memset buf 0 sizeof buf strcpy buf Welcome to server 二 char buf 128 Hello Server
  • 网页设计大作业 卖红酒网站

    卖红酒网站 详情如下图 下载链接在文末 点我下载链接 https download csdn net download weixin 43474701 60348862
  • 「鲸脸识别」已上线,夏威夷大学用 5 万张图像训练识别模型,平均精度 0.869

    内容一览 人脸识别可以锁定人类身份 这一技术延申到鲸类 便有了 背鳍识别 背鳍识别 是利用图像识别技术 通过背鳍识别鲸类物种 传统的图像识别依赖于卷积神经网络 CNN 模型 需要大量训练图像 并且只能识别某些单物种 近期 夏威夷大学的研究人
  • java开发周报变日报_程序员专用的日报、周报、月报、季报自动生成器!

    快速生成日报 周报 月报 季报 支持 windows mac linux 下载使用 windows https github com yurencloud daily releases download v2 0 0 daily windo
  • css3实现圆环加载进度条动画

    最近有人问我关于css3圆环的问题 要实现一个圆环 并且有加载特效 于是我看了看一般关于圆环实现的原理 以及自己手写了一个加载动画 可能体验还不是特别好 但是能用 话不多说 一下是代码 html结构 div class circle div
  • 考研资源免费分享

    1 408王道 链接 https pan baidu com s 1ac5HxvBzGtlet0CQWmtF2g 密码 eifm 2 英语全程班讲义及听力 链接 https pan baidu com s 1R 8fG5PUoRvia X5
  • 【C语言】数组排序方法总结

    一 冒泡排序 相邻元素两两比较 按照要求交换位置 n个元素一共要比较n 1趟 每趟要两两比较未排序元素个数 1次 include
  • Android 系统状态栏下拉界面的定制化开发

    Android 系统状态栏下拉界面的定制化开发 在 Android 开发中 我们经常需要对系统界面进行定制化 以满足特定的用户需求 其中 对 Android 系统状态栏下拉界面 SystemUI 进行定制化开发是一项常见的需求 本文将介绍如
  • 基本flex弹性盒布局

    flex弹性盒布局是css中最基础的一种布局方法 它可以帮助前端程序员更方便更灵活的对页面进行布局排版 以下就为大家整理一些常见的flex布局的代码和作用 希望可以帮助到有需要的人 弹性盒flex display flex 开启弹性盒 未开
  • 受益终生的十大经典管理学定律

    1 彼得原理 每个组织都是由各种不同的职位 等级或阶层的排列所组成 每个人都隶属于其中的某个等级 彼得原理是美国学者劳斯 彼得在对组织中人员晋升的相关现象研究后 得出一个结论 在各种组织中 雇员总是趋向于晋升到其不称职的地位 彼得原理有时也
  • 汉明码详细讲解

    汉明码 是R Hamming与1940年于贝尔实验室提出的 1 奇偶校验码 奇偶校验码 假设传输信息位为K n 1位 表示为a1 an 1 加上一位奇偶校验位 冗余位 a0 构成一个n位的码字a0 an 1 在接收端校验时 可按照关系式 s
  • 【VTK】装配体Assembly的使用

    VTK 装配体Assembly的使用 昨天晚上实现了一个可拖动的坐标轴MovableAxesWidget 今天给他加个使用场景 准备做一个简单的机械臂运动学仿真程序 模型用的HIWIN的机械臂 官网可以下载到模型 hiwin 毕业第一份工作
  • 作为一个程序员,最重要的能力是什么?很多人工作多年后才知道

    我认为程序员只需分三类 天才的程序员 理想的程序员 平庸的程序员 天才在生活中毕竟是少数 今天我们就来聊聊理想的程序员和平庸的程序员有什么区别 理想的程序员与平庸的程序员只有一墙之隔 两者的差距只有6个一点点 而人与人的差距 正是在这日积月
  • 获取下拉框选中的索引值

    selectedIndex 属性可设置或返回下拉列表中被选选项的索引号 var myselect document getElementById id var index myselect selectedIndex if index 1
  • Mission Impossible——《图灵的秘密》读后感

    图灵的秘密 是关于图灵1936年那篇开创性论文的解读 内容很多很难 需要的背景知识包括数理逻辑 lambda演算 以及一些基本的数论 读完的笔记也许都会比原书多 这里想简洁或者宏观性地谈谈几个主角之间的 故事 实际上说争论更准确 初 我目前
  • 机器学习算法(一):逻辑回归模型(Logistic Regression, LR)

    目录 1 LR 1 1 直观表述 1 2 决策边界 Decision Boundary 2 权值求解 2 1 代价函数 似然函数 2 1 1 为什么损失函数不用最小二乘 即逻辑斯蒂回归损失函数为什么使用交叉熵而不是MSE 2 1 2 代价函
  • Linux中安装Redis教程

    1 在CentOS7中新建一个文件夹 然后在这个文件夹中下载 Redis 执行下面的命令 你也可以选择其他的包 如 redis 5 0 10 tar gz 我用这个包安装成功了 wget http download redis io rel
  • Set接口

    Set接口简介 Set接口和List接口一样 同样继承自Collection接口 它与Collection接口中的方法基本一致 并没有对Collection接口进行功能上的扩充 只是比Collection接口更加严格了 与List接口不同的