浅析java集合

Posted 疯孑456258

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析java集合相关的知识,希望对你有一定的参考价值。

Colection单例集合是众多java集合的根接口,全部集合都是实现了该接口

一、List 集合

        实现该接口的特点:有序性,可重复性

       1.ArrayList

                  底层使用object数组实现,查询速度快(内存地址连续),增删慢(每次此类操作都要复制到另一个数组)

       2.LinkedList

                   底层使用链表数据结构,查询速度慢(一个接一个的存储),增删快(快速定位)

       3.Vector

                   原理与ArrayList一致,且是线程安全的,操作效率低

二、Set 集合

        实现该接口的特点:无序,不可重复

        1.HashSet

                  底层是使用hash表(实际上就是一张表)实现,存储速度快

                  存储原理:

                           往hashSet添加元素的时候,首先调用元素的hashCode方法得到元素的哈希马值,然后对哈希码值通过运算算出其在哈希表的位置。

                           当算出的位置目前没有任何元素,可将新值添加进去

                          当算出的位置已存在其他元素,则调用equals方法(可以重写)与该位置的元素进行比较,当返回false时可以添加

         2.TreeSet

                 底层是使用红黑树(二叉树)数据结构实现,排序存储

                 存储原理:往其添加元素时

                           若元素具备自然顺序的特点,按自然顺讯进行排序存储

                           若元素不具备自然顺序的特点,则元素所属的类必须实现Comparable接口,比较规则定义在CompareTo方法

                           若都没有,则在创建时比如传入Comparater(比较器)对象 ,即实现Comparator接口

 

三、Map 集合

           键值的存储形式,键不可重复,值可以

           1.HashMap

                           底层使用hash表实现                           

           2.TreeMap

                          底层使用红黑树数据结构实现








以上是关于浅析java集合的主要内容,如果未能解决你的问题,请参考以下文章

浅析Java中的集合

Java集合浅析

JAVA基础——集合浅析

Java集合框架浅析

Java中List集合的浅析

Java学习入门-05 -集合浅析