集合用于存储任意类型的数据,因为要存储任意类型,所以一般使用Object作为存储类型。在Collection的集合体系中主要需要使用到的List集合与Set集合,还有就是另外的有映射关系的接口Map
List:有序的,可重复的集合,使用该接口的实现类来添加元素的时候存储的都是按照添加顺序一个一个的一次添加到最后的
List中常用的有ArrayList、LinkedList与vector集合,这三者都属于接口List下面的实现类,其中ArrayList基于数组,而LinkedList则基于链表,这两者是线程不安全的,而Vector是线程安全的

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

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

2033

被折叠的 条评论
为什么被折叠?



