java中有序不可重复的集合_Java中的集合

本文介绍了Java集合中的Set接口及其常用实现类HashSet和TreeSet,重点讲解了它们的有序性和不可重复性的实现原理。同时,讨论了Map接口中的HashMap和TreeMap,以及它们的判重和排序机制。对于Set,HashSet依赖HashCode和Equals,而TreeSet基于Comparable或Comparator。Map中的判重和排序则基于Key的HashCode和Equals,以及Comparator。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

集合用于存储任意类型的数据,因为要存储任意类型,所以一般使用Object作为存储类型。在Collection的集合体系中主要需要使用到的List集合与Set集合,还有就是另外的有映射关系的接口Map

List:有序的,可重复的集合,使用该接口的实现类来添加元素的时候存储的都是按照添加顺序一个一个的一次添加到最后的

List中常用的有ArrayList、LinkedList与vector集合,这三者都属于接口List下面的实现类,其中ArrayList基于数组,而LinkedList则基于链表,这两者是线程不安全的,而Vector是线程安全的

4e8a424f208b1097740893ce89b7284e.png

Set:有序的,不可重复的集合,因为Set定义的是无序的,所以使用Set存储元素的时候不一定按照添加的顺序的存储,也不能保证每次运行代码时同一个元素的索引是同一个位置,这是使用Set集合需要注意的,Set也是继承自Collection接口的一个子接口,在它的实现类中常用的有HashSet与TreeSet两个。

bfc07af8ea9505831210a49eb53ea7a9.png

HashSet:该类判断重复的标准是根据HashCode与Equals方法来判断的,只有当哈希值与Equals方法都返回true的时候HashSet会将新添加的值覆盖到判断为重复的元素位置

TreeSet:该类判断重复的标准是通过Compartable或者Comparator来进行的,其中Compartable通过继承该类并且覆写方法就可以在使用这个类的对象的时候默认使用覆写的方法进行比较,而对于Comparator,因为要使用Comparator需要将其作为TreeSet构造方法的实参,而接口Comparator没有任何实现类,所以需要啊使用一个单独的类来实现Comparator接口,并且覆写里面的方法才行,这时候就可以使用多态到的原理将自己的类作为形参传递

注:Comparator在的时候不会使用Compartable

Map:Map中常用的有HashMap与TreeMap,其中判断重复与排序到的方法基本与Set相同,只是注意Map中判重与排序使用的都是K值来进行的

Map的遍历:遍历通常使用entrySet方法与keySet方法来进行

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值