Set接口
Set接口继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类。
在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。
主要实现类
- HashSet:底层数据结构是哈希表(hash table),主要利用HashMap的key来存储元素,计算插入元素的hashCode来获取元素在集合中的位置,;
- TreeSet:底层数据结构为红黑树结构,每一个元素都是树中的一个节点,插入的元素都会进行排序;
- LinkedHashSet:不允许重复的元素,底层数据结构为哈希表(hash table)+双链表,其中由链表保证元素的排序, 由哈希表证元素的唯一性
HashSet
Refer to https://swsmile.info/post/java-hashset/
TreeSet
Refer to https://swsmile.info/post/java-treeset/
LinkedHashSet
具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历LinkedHashSet时,结果会按元素插入的次序显示。
FEATURED TAGS
algorithm
algorithmproblem
architecturalpattern
architecture
aws
c#
cachesystem
codis
compile
concurrentcontrol
database
dataformat
datastructure
debug
design
designpattern
distributedsystem
django
docker
domain
engineering
freebsd
git
golang
grafana
hackintosh
hadoop
hardware
hexo
http
hugo
ios
iot
java
javaee
javascript
kafka
kubernetes
linux
linuxcommand
linuxio
lock
macos
markdown
microservices
mysql
nas
network
networkprogramming
nginx
node.js
npm
oop
openwrt
operatingsystem
padavan
performance
programming
prometheus
protobuf
python
redis
router
security
shell
software testing
spring
sql
systemdesign
truenas
ubuntu
vmware
vpn
windows
wmware
wordpress
xml
zookeeper