集合---

集合: 存放引用数据类型的容器(增删改查)

            Collection:  集合,是一个接口,继承了Iterable,里面有很多方法

            List: 也是一个接口,继承了Collection

                   特点: 有序,可以重复

            Set:  也是一个接口,继承了Collection

                     特点: 无序,不重复

            Map:接口

     泛型: 指的就是容器中元素的数据类型。    <数据类型>

               好处: 就是省去了获取元素的时候,类型转换。

    List接口:  里面有很多方法(增删改查)


         ArrayList:   (add、get、size()、sort()最常用)

             特点: 内存空间连续

             add()

             remove(): 只能删除一个,如果有重复的数据,删除第一个

             get() :  通过索引获取

             set():

             size():  获取元素的个数

             sort()

             contains(Object o)

         ArrayList:  底层是Object数组。所有的增删改查都是基于数组进行的。

         size:       ArrayList里面标记元素个数的。

         添加的逻辑:

              如果底层的数组元素满了,就要扩容,扩容1.5倍。然后将元素添加到容器

         LinkedList: 链表

             链表实现了  List  和  Deque两个接口

             特点:内存空间不连续。

             底层是Node,   分为3部分   前一部分   数据   后一部分


        Deque: 队列,  先进先出

        Stack: 栈:   先进后出

       ArrayList和LinkedList区别:

           ArrayList: 查询快,增删慢

           LinkedList 查询慢,增删快

        查看源代码的时候:

          c:  class  类

          m: method 方法

          f: field  变量


          md5

        HashSet:  实现了Set接口。

           无序:   没有索引

           不重复:

     

           add():    添加了重复元素,只显示一个

           remove()

     

       hashSet和hashtable区别:

         hashSet线程不安全  效率高

         Hashtable 线程安全,效率低

     

     

       迭代器:iterator

            - hasNext

            - next

    增强for循环   foreach循环

         实现了Iterable接口的都可以用


         for(泛型数据类型  变量 :  集合名称){

             操作变量

         }


         优点:  简单明了

         缺点:  不能操作索引

         HashMap:  双列集合    <K,V>

     

          put   如果键存在就是修改,不存在就是添加。

          get

          remove

          size

          keySet

     

       面试题:

          jdk8 以后HashMap的数据结构是:  数组+ 链表+ 红黑树

          当放入某个元素的时候,hashCode算出来要放入的位置,该位置存在元素,那么就以链表的方法放到下面,

          如果元素超过8个,就变成红黑树。

          如果红黑树的情况下,map删除元素,当红黑树中的元素少于6个的时候,红黑树变成链表。  泊松分布。

          HashMap初始化的时候,数组长度为16.

          负载因子 0.75.

          扩容2倍。

    工具类  Collections

     

       - sort

       - reverse

       - shuffle

       - min

       - max

       - addAll


    Integer[] array = list.toArray(new Integer[0]);

    

        List.of(数组名称)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_58801166

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值