java 集合类

   简介:

               1.Java集合类 是Java.util包中的重要内容,它允许以各种方式将元素进行分组,并定义了各种使这些元素更容易操作的方法。

               2.Java集合类 是Java将一些基本的和使用频率极高的基础类进行封装和增强,再以一个类的形式提供。

              3.集合类是Java数据结构的实现

              4.集合类 是可以往里面保存多个对象的类,存放的是对象的引用,每个不同的集合类都有不同的功能和特点,适合不同的场合,用来解决一些实际的问题。


 集合四类:

        1.List  列表 (元素有序且可重复):

                .鉴于 Java 数组储存数据的局限性,我们通常用list来取代数组.

                .list 容器中的元素都对应一个正整型的序号,记载其在容器中的位置,可以通过序号存取容器中的元素

                1.Array List (是有序,可重复的):

                  ArrayList 数组列表,它的内部是通过Array实现,在对数组列表进行插入,删除的操作时,都需要对数组进行拷贝并重排序,同时在知道它的储存容量时,尽量初始化初始容量,提升性能。


                           优点:

                                      1. 支持自由改变大小

                                      2.可以灵活的插入删除元素

                           缺点:

                                      1.比普通的数组速度慢一些

   


      

                2.LinkedList:

                    LinkedList 双向链表 里面的元素都有着指向前后元素的指针,顺序读取效率较高,随机读取效率较低。

                   LinkedList也实现了Dqueue接口  ,所以也可以被当作双端队列使用。


           如何实现LinkedList:

                    LinkedList 的底层双向链表,而链表的底层是一个个节点通过游标进行连接 的,因此我们要做的是创造节点,然后储存的时候通过游标将一个个节点进行连接起来就行了。 


               3.Vector:

                   vector向量和ArrayList一样都是通过数组实现,不同的是,vector线程安全,但线程安全的同时带来了性能损耗。

               4.Stack:

                    Stack栈容器是Vecotr容器的一个子类,栈是一种后进先出的线性数据结构,是一种特殊的线性表。

               5.ArrayQueue:

                     ArrayQueue数组队列 先进先出。

         2.Queue队列:         

               1.PriorityQueue:

                    PriorityQueue本质上也是一个动态数组,和ArrayList一样。

                    PriorityQueue保存队列的元素顺序,不是按加入队列的顺序,而是按照队列元素的大小进行重新排序。

                    数组实现的二叉树,完全二叉树实现的小顶堆。

               2.Dqueue:

                   Dqueue接口是Queue接口的子接口,它代表一个双端队列。

                   Dqueue不仅可以当双端队列使用,还可以被当成Stack使用。

                   


         Dqueue和Queue、Stack的关系:

                   Dqueue当作Stack使用时,入栈、出栈元素都是在双端队列头部进行。

                   Dqueue当作Queue使用时,添加元素时会添加到队尾,删除时,删除的是头部元素。

         注意: Stack 过于古老,并且实现的非常不好,可以只用Dqueue代替Stack。

        

          3.ArrayDqueue:

                  ArrayDqueue 为了满足同时在数组两端进行插入、删除元素的要求,其内部动态数组必须是循环的,即循环数组。

                  ArrayDqueue 由于是双端队列,所以其顺序是按照元素插入数组中对应的位置产生的。

         3.Map映射 /字典:

  1. HashMap哈希映射/字典,无序字典,键值对数据,key是唯一的,Key和Value都可以为null
  2. TreeMap红黑树实现的key->value融合,可排序,红黑树是一种自平衡二叉查找树。
  3. LinkedHashMap链表映射/字典,继承了hashmap的所有特性,同时又实现了双向链表的特性,保留了元素插入顺序。

       4.Set集合:

  1. HashSet基于HashMap实现的集合,对HashMap做了一些封装。与HaspMap不同的是元素的保存为链表形式,插入数据时遍历链表查看是否有相同数据,有则返回false,没有则返回true.
  2. LinkedHashSet链表集合,继承自HashSet与LinkedHashMap相似,是对LinkedHashMap的封装。
  3. TreeSet红黑树集合,与TreeMap相似,是对TreeMap的封装。

szxyxfssyxyszxt

syszszsyxyss

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值