关于集合类的介绍

时间:2022-09-03 14:11:19

集合类中有两个非常重要的接口Collection、Map,其继承 的结构图分别如下图所示

关于集合类的介绍

关于集合类的介绍

Collection接口中有三个子接口,分别为List、Set、Queue,我们所用的较多的是List、Set这连个接口的实现类

对于List接口,它是有序集合,元素可重复,在List中最为重要的实现类是ArrayList、LinkedList,其次是Vector,。

对于ArrayList其底层是由数组实现的,所以它具有查找和遍历速度快的优点但不适合作增删操作,注意ArrayList是线程不安全的,即不允许多个线程对其进行修改。

对于LinkedList其底层是由链表实现的,它把每个对象用指针(注意:在java中没有这个概念,因为这个概念别隐藏起来了)连接起来,所以它就具有链表的特点,所以它的适合用于作增删操作,但不适用与座查找和遍历的操作。

对于Vector其实它 和ArrayList几乎一样,它也具有ArrayList的特点,因为它是线程安全的,所以它比ArrayList的性能差一些。



对于set接口,其内的元素是无序不可重复的,在Set中最为重要的实现类为HashSet,

在Set中我们用的最多的实现类就是HashSet。HashSet其底层的是由hash算法实现的,当其添加一个元素时,先计算其hash值通过hash值把该元素存储到向相应的位置。在进行添加操作时,先判断该集合中是否已有该元素,及判断方法就是被添加的元素与集合中的逐个元素进行equals和hashCode判断,当进行equals判断返回true并且其hashCode返回的值相同时,便认为该元素在集合中存在。


对于Map接口而言,最为常用的实现类为HashMap,它是以Key---value对进行存储的,其中Key的值不允许重复,但key允许为null,我们拿到value的值都是通过key来拿的