java基础教程--集合

来源:互联网 发布:燕窝的功效 知乎 编辑:程序博客网 时间:2024/04/19 13:42

Collection 集合  接口

    |-----List 线性集合(线性表):元素有先后次序,元素有序号

    |-----|----ArrayList

    |-----|----LinkedList

    |-----Set 元素无序,元素不能重复的集合

              HashSet 底层是HashMap(屏蔽了value部分的Map)

         

Collections

    |-----sort

    |-----binarrySearch

    |-----打乱

 

Map 接口 键值对(key-value) 成对添加的集合

    HashMap 散列表算法,面向查找优化的算法,查找性能优异,无论多少数据量,查找次数少于3次

    散列表容量:散列表中数组的大小

    散列表的大小(size):散列表中存储的(key-value)元素的数量

    加载因子:大小/容量(容量:能装在的最大值一般为75%)

    散列桶:散列值相同的元素集合

   

    size/容量<=加载因子(75%)

    为了提高效率,减少扩容次数

   

    HashMap 散列表容量:散列表中数组的大小

    HashMap 构造器默认创建容量是16,加载银子是75%

    默认加载到12就满了,如果再添加就自动扩容

    经过测试75% 的加载率,查询效率很高,最多不超过3次

 

散列表的迭代(遍历)

     迭代就是将散列表的元素逐一处理一遍的算法

      散列表没有直接的迭代起方法

        1 利用key的集合进行迭代

        2 利用key-value对集合进行迭代

      散列表中:key是不允许重复,value可以重复

              重复添加同一个key,会将原key-value替换掉         

Map 接口 键值对(key-value) 成对添加的集合

    hashMap 散列表算法,面向查找优化的算法,查找性能优异,无论多少数据量,查找次数少于3次

    散列表容量:散列表中数组的大小

    散列表的大小(size):散列表中存储的(key-value)元素的数量

    加载因子:大小/容量(容量:能装在的最大值)一般为75%

    散列桶:散列值相同的元素集合

        

    size/容量<=加载因子(75%)

    为了提高效率,减少扩容次数

    

    HashMap 构造器默认创建容量是16,加载银子是75%

    默认加载 到12就满了,如果再添加就自动扩容

    经过测试75% 的加载率,查询效率很高,最多不超过3次          

Map的迭代

  Map的常用方法:就是对Map集合中的key-value对进行的增删改查

               增加方法:put(key,value)  putAll(map)  合并两个map集合

               删除:remove(key) 删除对象的key-value对 clear()

               修改:put(key,value)

               查询:value get(key) 查询、获取key对应的value

                    containsKey(key) 查询使用包含了key

                    containsValue(key) 查询使用包含了value(value可以重复)

                    size() key-value对的个数                      

Set 集合 元素不重复 无序


Map

 |--HashMap 散列表

         1 查询速度快 查询方法:get() containsKey()

           散列查找的速度要远远大于线性顺序查找

           不管多少数据,一般会在3此比较以内找到

           散列查找过程:根据key查找value的过程

              1 根据key对象的hashCode()的值计算散列数组的下标位置

              2 找到下标位置的对应的散列桶(线性链表)

              3 在散列桶中线性查找key,查找时候使用equals()比较是否找到了key

              4 如果找到key,就返回key对应的value,否则返回null

         2 影响散列表性能的参数

           1 容量

           2 大小(size)

           3 加载因子:最大的加载率,加载率 大小/容量

             加载因子默认值为75%  一般可以保证散列桶,长度不会超过3个

            

           在向散列表添加元素时候,当实际加载率超过75%时候会自动扩容,发生重新散列现象。

             在重新散列时候性能很差,可以利用 构造器设定初始容来嗯,减少散列次数

             如:10000数据   10000/建议容量<=75%

集合结构

Apache.org commons-collection.jar

 

Collection

 |--List

 |---|---ArrayList

 |---|---LinkedList

 |--Set

 |--|---HashSet

 |--|---TreeSet

        

Map

 |--HashMap(key-value)

 |--Hashtable

 |--LinkedHashMap

 |--TreeMap

 

迭代注意事项:在迭代期间不能操作集合内容(添加、删除元素)

  迭代器的删除操作可以使用!否则会发生运行异常


0 0
原创粉丝点击