最新要闻
- 对标英伟达A100 国产GPU沐曦MXC500成功点亮:仅用时5个小时|世界消息
- 奶奶带孙子时邻居反馈“不像他爸” 去做亲子鉴定后崩溃:真不是
- 微软创始人比尔盖茨抵达北京!2019年以来首次访问
- 小米米家首款自发电动感单车采用南芯芯片:支持20W有线/无线快充
- 环球看热讯:买下《哈利波特》电影中房子的屋主后悔了 每天都有粉丝来打卡
- 澳琴企业首次亮相第九届上交会_热资讯
- 百度文心一格×京东618:打造电商行业首个AI线下广告,节省80%制作成本|焦点快看
- 环球视讯!人人有份!湖北将发放3亿元消费券:最大面额500元 京东可用
- 世界热点评!作别“战国七雄” 中国快递业变天了:进入三足鼎立
- 阿里巴巴集团公关部将独立成公关公司?知情人士:假的-环球关注
- 有关交朋友的成语典故_与朋友有关的成语典故
- 男子花120万买二手奥迪R8 开了三年发现竟是全损泡水车
- 精选!商汤元萝卜AI下棋机器人围棋版发布:棋艺达职业九段
- 150元只能划半小时!杭州西湖划船刺客运营方被罚12万|环球讯息
- 开发者怒赞macOS 14真香!喊话微软:这三大功能值得Windows 12借鉴
- 索泰预热全新PGF系列旗舰显卡:或为RTX 4090 环球头条
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Set 接口及其常用方法
【资料图】
Set 接口基本介绍
Set
接口是Collection
接口的一个子接口,其主要特点如下:
不允许重复元素:
Set
接口的实现类不会包含重复的元素。更正式地说,不包含任何一对使得e1.equals(e2)
成立的元素e1
和e2
,并且最多只能有一个null
元素。当尝试添加重复元素时,添加操作将被忽略。无序性:
Set
接口取出元素的顺序和添加元素的顺序不一致(但是每次取出的顺序是固定的),即无法通过索引访问Set
中的元素。
Set
接口的常用实现类有HashSet
、TreeSet
和LinkedHashSet
。可以使用迭代器和增强 for 循环遍历元素,但是不能使用普通 for 循环(不能使用索引)。下面的代码以其实现类HashSet
演示Set
接口的特点。
public class TestSet() { public static void main(String[] args) { Set set = new HashSet(); set.add("Phoebe"); set.add("Monica"); set.add("Phoebe"); // 重复 set.add("Ross"); set.add("Chandler"); set.add("Rachel"); set.add(null); set.add(null); // 再次添加 null // 10 次输出结果均为:set=[Phoebe, null, Rachel, Ross, Chandler, Monica] // 重复的 Phoebe 和 null 都只输出了一个, // 取出顺序和添加顺序不一致但每次取出顺序都是相同的。 for (int i = 0; i < 10; i++) { System.out.println("set=" + set); } }}
注意:如果Set
集合的元素是可变对象时,必须要小心。如果以影响equals()
方法比较结果的方式修改Set
中的元素的值,集合的行为是未指定的。这种情况的特例是Set
不能将自身作为元素。以下以一个简单的 Person 类来测试修改HashSet
中元素的值使得两个元素equals()
方法比较结果相同时的情况。
public class Person { private String name; public Person() { } public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return name.equals(person.name); } @Override public int hashCode() { return Objects.hash(name); } @Override public String toString() { return "Person{" + "name="" + name + "\"" + "}"; }}
public class TestModifyValue() { public static void main(String[] args) { Set set = new HashSet(); // 创建 3 个 Person 实例,其中 rose1.equals(rose2) 成立 Person jack = new Person("Jack"); Person rose1 = new Person("Rose"); Person rose2 = new Person("Rose"); // 将其添加到 set 中 set.add(jack); set.add(rose1); set.add(rose2); // 可以看到只添加成功一个姓名为 Rose 的 Person 实例,其应为 rose1。 System.out.println("set = " + set); // set = [Person{name="Rose"}, Person{name="Jack"}] // 将 set 添加到自身中,未添加成功 set.addAll(set); System.out.println("set = " + set); // set = [Person{name="Rose"}, Person{name="Jack"}] // 将 rose1 的 name 属性修改为 Jack rose1.setName("Jack"); System.out.println(rose1.equals(jack)); // true // 可以看到此时 set 集合中仍有两个对象,其 equals() 方法比较结果相同。 System.out.println("set = " + set); // set = [Person{name="Jack"}, Person{name="Jack"}] }}
Set 接口常用方法
Set
接口和List
接口一样,也是Collection
接口的子接口,因此常用方法和Collection
接口一样。但需要注意由于Set
接口不包含重复元素,所以addAll()
方法的参数也是Set
时,addAll
操作会有效地修改该集合,使其值为两个集合的并集。
public class SetAddAll() { public static void main(String[] args) { Set set = new HashSet(); set.add("Phoebe"); set.add("Monica"); set.add("Ross"); System.out.println("set = " + set); // set = [Phoebe, Ross, Monica] Set set1 = new HashSet(); set1.add("Phoebe"); set.add("Chandler"); set.addAll(set1); System.out.println("set = " + set); // set = [Phoebe, Ross, Chandler, Monica] }}
Set 接口遍历元素方式
Set
接口遍历元素的方式和Collection
接口的一样,可以使用迭代器和增强 for 循环来遍历元素,但不能通过索引的方式来遍历元素。
public class SetThroughElements() { public static void main(String[] args) { Set set = new HashSet(); set.add("Phoebe"); set.add("Monica"); set.add("John"); System.out.println("---使用迭代器---"); Iterator iterator = set.iterator(); while (iterator.hasNext()) { Object obj = iterator.next(); System.out.println("obj = " + obj); } System.out.println("---使用增强 for---"); for (Object o :set) { System.out.println("o = " + o); } // 不能使用普通 for 循环,因为 Set 不支持索引 }}
关键词:
Set 接口及其常用方法
对标英伟达A100 国产GPU沐曦MXC500成功点亮:仅用时5个小时|世界消息
奶奶带孙子时邻居反馈“不像他爸” 去做亲子鉴定后崩溃:真不是
微软创始人比尔盖茨抵达北京!2019年以来首次访问
小米米家首款自发电动感单车采用南芯芯片:支持20W有线/无线快充
环球看热讯:买下《哈利波特》电影中房子的屋主后悔了 每天都有粉丝来打卡
澳琴企业首次亮相第九届上交会_热资讯
百度文心一格×京东618:打造电商行业首个AI线下广告,节省80%制作成本|焦点快看
环球视讯!人人有份!湖北将发放3亿元消费券:最大面额500元 京东可用
世界热点评!作别“战国七雄” 中国快递业变天了:进入三足鼎立
阿里巴巴集团公关部将独立成公关公司?知情人士:假的-环球关注
微控制器实时操作系统实践5选择IDE 全球短讯
文心一言 VS 讯飞星火 VS chatgpt (41)-- 算法导论5.4 5题
【环球播资讯】破“3”!30年期国债收益率创2006年以来新低
有关交朋友的成语典故_与朋友有关的成语典故
男子花120万买二手奥迪R8 开了三年发现竟是全损泡水车
精选!商汤元萝卜AI下棋机器人围棋版发布:棋艺达职业九段
150元只能划半小时!杭州西湖划船刺客运营方被罚12万|环球讯息
开发者怒赞macOS 14真香!喊话微软:这三大功能值得Windows 12借鉴
索泰预热全新PGF系列旗舰显卡:或为RTX 4090 环球头条
天天视点!加个电池就是新能源?被欧洲拒绝的混动,才是埋藏最深的骗局!
当前动态:中兴Axon 50 Ultra开启预约:卫星通信疑似取消
当前关注:18岁小伙骑共享单车5000公里到新疆:送给自己的成人礼
捡漏超大额券:森马男女款网红飞织鞋69元 透气百搭
留给BBA的时间不多了!理想L6谍照首次曝光 将于明年正式交付_环球短讯
“熊猫血”男子献血证塞满了抽屉 21年献出3.5个人的全部血量:行为让人敬佩
焦点速读:2023重庆璧山小学报名入口
当 GraphQL 遇上图数据库,便有了更方便查询数据的方式 当前短讯
6月14日北向资金最新动向(附十大成交股)_全球今头条
iQOO Neo8 Pro顶配版明天首销:1TB UFS 4.0规格 3699价位独此一款
《神鬼寓言4》女主角外观遭玩家吐槽:这是在比丑!-全球快资讯
国产新能源深蓝SL03路口起火烧毁 厂商:系发动机护板卷入麦秆自燃引起
【全球快播报】Win11企业版默认启用SMB签名导致Bug:微软发布解决方案
每日看点!用上宁德时代麒麟电池!新款哪吒S曝光:能跑1075km
[SDOI2008] 递归数列
【全球播资讯】ssh免密登录、服务器安全
烷基计数
风口上的AIGC,技术岗动不动年薪百万,甚至重金难求? 天天新消息
MegEngine 使用小技巧:如何做 MegCC 的模型性能评测
焦点速看:认知型通用大模型“360智脑”升级4.0,国内首发“文生视频”多模态功能
4连板联明股份:股价短期内涨幅明显高于上证指数及行业板块指数,但公司基本面未发生重大变化
多种矿物质元素 依能天然苏打水15瓶到手34.91元
世界快资讯:天气炎热 亚洲象开启“避暑模式”!网友:真羡慕了
超越《塞尔达传说:王国之泪》:《暗黑破坏神4》登顶英国周销量榜-新资讯
国产AI天花板!讯飞星火iOS内测版上线:已覆盖PC、手机等主流系统 短讯
微资讯!地表67℃!火焰山进入炙烤模式:景区为游客增配防暑药品
FTL没有映射,跟发工资没有钱有什么区别 要闻
【全球新要闻】奇妙敏捷之旅·青岛站,现场燃爆了!
联盟送福利:云上掘金,开启你收入的第二增长曲线 全球新视野
机器硬件监控,最简单的方案,没有之一
因为余华的一封信,莫言要去东澳岛读书了
恒生指数14日收跌0.58%结束五连涨
科创浪潮奔涌大湾区
PDF问世30周年 每年6月15日成“PDF日”
中国空间站美景请查收!央视解析全新构型:三舱三船
最高额外降温3℃:猫头鹰针对AMD AM5插槽CPU推出散热支架-热门
世界观天下!苹果蝉联2023年凯度BrandZ最具价值全球百强榜首:腾讯跻身十强
中国自研唯一入选项目!《王者荣耀亚运版本》发布:共计63个英雄
毕马威:力争在2030年将毕马威全球的直接和间接碳排放在2019年基础上减半 今日热议
世界时讯:SpringBoot中Redis的基础使用
利用 PHP 特性绕 WAF 测试 环球聚看点
linux-DNS域名解析
世界即时看!2种GaussDB(DWS)查看作业运行信息方式
收评:两市窄幅波动沪指微跌0.14% CPO概念股领涨 大消费主题反弹
热头条丨【新华500】新华500指数(989001)14日涨0.03%
世界今热点:层层梯田上红山荞麦播种忙 全产业链带动农民增收
【当前独家】AMD自杀式降价 讯景RX 7900 XT显卡到手5299元(首发7399)
男生说猫屎臭被头上扣饭?官方回应:已经处理
天天滚动:与K60 Ultra同台发!Redmi 2K新平板曝光:只要千元
外卖小哥从10多米高大桥跳水救人:见义勇为获奖3万、免费上大学
焦点热讯:中国第一条时速350铁路明日调图:动车组重联 运力翻倍
2023内蒙古师范大学附属中学英才计划招生简章
618大促|解析平台、商家和消费者必须面对的三大风险
【技术积累】Python中的NumPy库【二】|天天滚动
全球快资讯丨Springboot定时任务集成shedLock锁
今日热搜:开放中国依然是外商投资高地
每日动态!晋升第一人口大国后 印度将成为全球第一大手机市场:多谢苹果
不是录播!梅西即将在淘宝开启首次直播
华为又背锅?理想粉丝暗指华为发动舆论攻击:李想出面澄清
亚运会倒计时101天!杭州开通“亚运号”定制专列
国内最畅销SUV排名出炉:特斯拉Model Y反超比亚迪宋Plus拿下第一
天天快看点丨大文件上传功能在标签服务的简单应用和代码实现
Aurelia教程_编程入门自学教程_菜鸟教程-免费教程分享
让电池新规为电动自行车加把“安全锁” 全球热点评
全球动态:21℃室温超导成果被美院士宣称复现!南大教授:有3点质疑
全球报道:吉利高管评理想学华为:华为是时代的产物 但时代变了
全球今日报丨Vision Pro商标被华为注册!专家:苹果要么求华为和解 要么中国市场改名
王鸿薇反击林飞帆退选还推责任 毫无担当 每日视点
快看:0-500公里仅需20.16秒!布加迪火流星正式亮相勒芒赛场
锐龙7 7800X3D搭配A620主板实测:游戏性能依旧胜过i9-13900KS
能打过理想L7?丰田新款汉兰达上市:26.88万起-新资讯
焦点热讯:Nothing Phone (2) 定档7月11日:比亚迪代工
世界热讯:无惧A卡狠降价!英伟达RTX 4060国内上市时间曝光:2399元秒抢光?
理想汽车在重庆成立销售新公司,注册资本1000万|世界观天下
【世界速看料】读发布!设计与部署稳定的分布式系统(第2版)笔记02_停飞的代码异常
每日消息!经典webshell流量特征
华洋赛车北交所IPO成功过会:产品进入美国等50余个国家和地区 参与多项标准起草
全球规模最大!京东亚洲一号第100亿件智能包裹下线
短睡眠者可能“天赋异禀”:每天只需睡四五个小时
东莞暴雨 外卖小哥摔倒人车被水冲走:市民合力营救