java-集合-set(不重复集合)知识分解

本文详细探讨了Java中的Set集合,强调其不重复元素的特点。内容涵盖HashSet的内部实现、添加元素过程、代码示例以及遍历无序性的原因。还涉及到哈希值和哈希表的概念,以及相关注意事项。
摘要由CSDN通过智能技术生成

庖丁解牛术法总纲

第一重境界:所见莫非全牛者

1、概述:

2、Set集合特点:

3、分类(实现子类):

4、所有已知实现类:

5、注意事项

6、所有方法

第二重境界:未尝见全牛也

HashSet

1、HashSet特点:

2、HashSet集合添加一个元素的过程:

3、代码演示

4、注意事项(特殊之处,遍历无序的原因不是排序的无序,而是底层哈希值的存放地址的原因)

5、LinkedHashSet集合概述和特点

TreeSet

1、TreeSet集合特点

2、注意事项

3、代码展示(比较器排序)

第三重境界:官知止而神欲行

1、哈希值(hashCode)

概念:

特点:

代码展示:

2、哈希表

概念:

哈希表的实现:

哈希表的优缺点:

哈希表的学习:


庖丁解牛术法总纲

========

吾生也有涯,而知也无涯 。以有涯随无涯,殆已!已而为知者,殆而已矣!为善无近名,为恶无近刑。缘督以为经,可以保身,可以全生,可以养亲,可以尽年。

“庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所踦,砉然向然,奏刀騞然,莫不中音。合于《桑林》之舞,乃中《经首》之会。

文惠君曰:“嘻,善哉!技盖至此乎?”

庖丁释刀对曰:“臣之所好者,道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。方今之时,臣以神遇而不以目视,官知止而神欲行。依乎天理,批大郤,导大窾,因其固然,技经肯綮之未尝,而况大軱乎!良庖岁更刀,割也;族庖月更刀,折也。今臣之刀十九年矣,所解数千牛矣,而刀刃若新发于硎。彼节者有间,而刀刃者无厚;以无厚入有间,恢恢乎其于游刃必有余地矣,是以十九年而刀刃若新发于硎。虽然,每至于族,吾见其难为,怵然为戒,视为止,行为迟。动刀甚微,謋然已解,如土委地。提刀而立,为之四顾,为之踌躇满志,善刀而藏之。”

——《庄子·养生主》

呔,妖怪。看法宝!

第一重境界:所见莫非全牛者

=============

1、概述:

Set集合类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。实际上Set就是Collection,只是行为略有不同(Set不允许包含重复元素)。

Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。

2、Set集合特点:

(1)、不包含重复元素的集合

(2)、没有带索引的方法,所以不能使用普通for循环遍历

3、分类(实现子类):

(1)、HashSet

(2)、TreeSet

4、所有已知实现类:

  • [AbstractSet]( )[ConcurrentHashMap.KeySetView]( )[ConcurrentSkipListSet]( )[CopyOnWriteArraySet]( )[EnumSet]( )[HashSet]( )[Job
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值