Set接口

Set接口的介绍

Set接口基本介绍

  • 无序(添加和取出的顺序不一致),没有索引
  • 不允许重复元素,所以最多包含一个null
  • JDK API中Set接口的实现类:主要有HashSet;TreeSet
    在这里插入图片描述

Set接口的常用方法

和List 接口一样,Set接口也是Collection的子接口,因此,常用方法和Collection接口一样

Set接口的遍历方式

同Collection一致,因为Set是Collection的子接口

  • 迭代器
  • 增强for
  • 不能使用索引的方式

Set接口的常用方法举例

public class SetMethod {@SuppressWarnings({"all"})public static void main(String[] args) {//1. 以 Set 接口的实现类 HashSet 来讲解 Set 接口的方法//2. set 接口的实现类的对象(Set 接口对象), 不能存放重复的元素, 可以添加一个 null//3. set 接口对象存放数据是无序(即添加的顺序和取出的顺序不一致)//4. 注意:取出的顺序的顺序虽然不是添加的顺序,但是他是固定的.HashSet set = new HashSet();set.add("john");set.add("lucy");set.add("john");//重复set.add("jack");set.add("hsp");set.add("mary");set.add(null);//set.add(null);//再次添加 null
//        for (int i = 0; i < 10; i++) {
//            System.out.println(set);
//        }//遍历//1,使用迭代器System.out.println("======使用迭代器=====");Iterator iterator = set.iterator();while (iterator.hasNext()) {Object object = iterator.next();System.out.println(object);}//2,使用增强for循环System.out.println("======使用增强for循环=====");for (Object o:set){System.out.println(o);}//3,不能用普通for ,因为set对象不能调用get方法。不能通过索引来获取}}

结果
在这里插入图片描述

Set接口实现类-HashSet

HashSet 的全面说明

  • HashSet 实现了Set接口
  • HashSet实际上是HashMap,源码
    在这里插入图片描述
  • 可以存放null值,但是只能有一个null
  • HashSet不保证元素是有序的,取决于hash后,再确定索引的结果(即:不保证存放元素的顺序和取出的顺序一致)
  • 不能有重复元素/对象
public class HashSet_ {@SuppressWarnings({"all"})public static void main(String[] args) {HashSet hashSet = new HashSet();hashSet.add(null);hashSet.add(null);System.out.println("hashSet="+hashSet);}
}

结果
在这里插入图片描述

案例说明

public class HashSet01 {@SuppressWarnings({"all"})public static void main(String[] args) {HashSet set = new HashSet();/*** 说明:* 1,在执行add方法后,会返回一个boolean值* 2,如果添加成功,返回true,否则返回false*/System.out.println(set.add("john"));//TSystem.out.println(set.add("lucy"));//TSystem.out.println(set.add("john"));//FSystem.out.println(set.add("jack"));//TSystem.out.println(set.add("Rose"));//T//3,调用remove方法,直接删除对象set.remove("john");System.out.println("set="+set);//Rose, lucy, jackset = new HashSet();System.out.println(set);//空//4,Hashset 不能添加相同的元素/数据set.add("lucy");//添加成功Tset.add("lucy");//加入不了Fset.add(new Dog("tom"));set.add(new Dog("tom"));//不同的对象System.out.println(set);}
}
class Dog{private String name;public Dog(String name) {this.name = name;}@Overridepublic String toString() {return "Dog{" +"name='" + name + '\'' +'}';}
}

结果
在这里插入图片描述

Set接口实现类-LinkedHashSet

LinkedHashSet的全面说明

  • LinkedHashSet 是HashSet的子类
  • LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组+双向链表
  • LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序,这使得元素看起来是一插入顺序保存的
  • LinkedHashSet不允许添加重复元素

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

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

相关文章

Windows11提示升级,我要点确定吗?

Windows 11自2021年10月推出以来&#xff0c;一直保持着缓慢而稳定的增长&#xff0c;相对来说在游戏PC上的影响力较大&#xff0c; 而Windows 10也即将于2025年10月结束支持。 截至2024年&#xff0c;Windows 11的主要版本包括24H2、 23H2、22H2和21H2。 24H2&#xff1a;20…

k8s遇到的常见问题及解决

1. error: open /var/lib/kubelet/config.yaml: no such file or directory 解决&#xff1a;关键文件缺失&#xff0c;多发生于没有做 kubeadm init就运行了systemctl start kubelet。 要先成功运行kubeadm init 2. 执行初始化kubeadm init ------的时候报错 The HTTP call…

五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第四节Llama 3 高效部署实践(LMDeploy 版)

课程文档&#xff1a; https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频&#xff1a; https://space.bilibili.com/3546636263360696/channel/collectiondetail?sid2892740&spm_id_from333.788.0.0 操作平台&#xff1a; https://studio.intern-ai.org.cn/consol…

GAMMA Lab——知识图谱和LLM大模型

图机器学习的发展与分类 图基础模型 LLM基础模型 GNN LLM 前沿工作

Nginx-那些事

文章目录 前言1 Nginx的隧道模式&#xff0c;网关&#xff0c;代理与反向代理2 负载均衡 与 集群3 动静分离配置4 URL REWrite 伪静态这配置5 防盗链6 高可用7 对客户端的缓冲与限制8 X-ForWarded-For获取真实IP9 Gzip 动态压缩优缺点10 跳板机11 断点续传12 多级缓存13 带宽限…

算法第62天 单调栈2

503 下一个更大元素II 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序&#xff0c;这个数字之后的第一个比它更大的数&…

JUC下的CompletableFuture详解

详细介绍 CompletableFuture是Java 8引入的一个实现Future接口的类&#xff0c;它代表一个异步计算的结果。与传统的Future相比&#xff0c;CompletableFuture提供了更丰富的功能&#xff0c;比如链式调用、组合异步操作、转换结果、异常处理等&#xff0c;极大地增强了Java在…

TikTok shop多账户需要防关联吗?

TikTok是一个非常垂直的平台&#xff0c;每个账号的内容都应该尽可能的垂直&#xff0c;这样平台才能引流更多的流量。但是&#xff0c;TikTokShop只有一两个账号&#xff0c;流量往往难以保证&#xff0c;所以很多商家选择了TikTok的多账号运营模式。 众所周知&#xff0c;多店…

人工智能技术对未来各行业的影响与应对策略

随着人工智能技术的快速发展和广泛应用&#xff0c;各行各业都面临着前所未有的变革和挑战。人工智能技术已经开始深刻影响生产制造、金融、医疗、交通等行业&#xff0c;为企业带来了更高效、更智能的生产和管理方式&#xff0c;同时也带来了一系列新的问题和机遇。 首先&…

在Linux系统设置SSH防爆破!

liunx系统的SSH远程端口非常容易遭受口令爆破&#xff0c;如果密码设置太简单很容易直接被网络攻击爆破而植入恶意程序&#xff0c;木马&#xff0c;恶意脚本等&#xff0c;进而导致数据被删&#xff0c;盗&#xff0c;沦为黑客的肉鸡对外DDoS&#xff0c;服务器公网IP容易被监…

C++(动态规划之拆分整数)

其实我交上去都有点似懂非懂 题目&#xff1a;&#xff08;343. 整数拆分 - 力扣&#xff08;LeetCode&#xff09;&#xff09; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 …

什么是SOL链跟单机器人与阻击机器人?

SOL链作为一个快速增长的区块链生态系统&#xff0c;为各种应用程序提供了丰富的发展机会。在SOL链上&#xff0c;智能合约的应用已经开始蓬勃发展&#xff0c;其中包括了许多与加密货币交易相关的应用。在本文中&#xff0c;我们将介绍在SOL链上开发的阻击机器人&#xff08;S…

【静态分析】软件分析课程实验A3-死代码检测

官网&#xff1a; 作业 3&#xff1a;死代码检测 | Tai-e 参考&#xff1a; https://www.cnblogs.com/gonghr/p/17981720 --------------------------------------------------------------------- 1 作业导览 为 Java 实现一个死代码&#xff08;dead code&#xff09;检…

驱动开发-用户空间和内核空间数据传输

1.用户空间-->内核空间&#xff08;写&#xff09; #include<linux/uaccess.h> int copy_from_user(void *to,const void __user volatile*from,unsigned long n) 函数功能&#xff1a;将用户空间数据拷贝到内核空间 参数&#xff1a; to&#xff1a;内核空间首地…

【计算机毕业设计】springboot果蔬种植销售一体化服务平台

伴随着我国社会的发展&#xff0c;人民生活质量日益提高。于是对果蔬种植销售一体化服务管理进行规范而严格是十分有必要的&#xff0c;所以许许多多的 信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套果蔬种植销售一体化服务平台&…

RS2255XN功能和参数介绍及PDF资料

RS2255XN是一款由Runic&#xff08;润石&#xff09;公司生产的模拟开关。以下是关于RS2255XN的一些技术参数和特点&#xff1a; 封装&#xff1a;MSOP-10 电源电压范围&#xff1a;2.5V至5.5V 工作温度范围&#xff1a;-40C至125C 类型&#xff1a;模拟开关 品牌&#xff1a;R…

Android之使ImageView中图片保持比例显示,且不超过最大高度和最大宽度限制

1、原来的&#xff0c;没有大小尺寸限制&#xff0c;不重要 <ImageView android:id"id/img_one_show" android:layout_width"wrap_content" android:layout_height"wrap_content" android:scaleType"fitStart" android:visibil…

如何使用Whisper音频合成模型

Whisper 是一个通用语音识别模型&#xff0c;由 OpenAI 开发。它可以识别多种语言的语音&#xff0c;并将其转换为文本。Whisper 模型采用了深度学习技术&#xff0c;具有高准确性和鲁棒性。 1、技术原理及架构 Whisper 的工作原理&#xff1a;音频被分割成 30 秒的片段&#…

云计算导论(2)---云计算基础

文章目录 1. 分布式计算2. 分布式计算系统架构3. 分布式计算关键技术4. 分布式计算性能优化方法5. 云计算的基本概念6. 云计算的关键技术 1. 分布式计算 1. 定义&#xff1a;分布式计算是一种计算方法&#xff0c;将一个大型任务拆分成多个小任务&#xff0c;并分配给多台计算机…

c#绘制渐变色的Led

项目场景&#xff1a; c#绘制渐变色的button using System; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; using static System.Windows.Forms.AxHost;namespace WindowsFormsApp2 {public class Gradie…