Java集合知识总结

1.特点:
    Collection:(单列集合)
        List:(有序,元素不唯一)
            ArrayList:
                1.线程不安全,效率高
                2.底层实现可变数组,查询快,增删慢
            Vector:
                1.线程安全,效率低
                2.底层实现可变数组,查询快,增删慢
            LinkedList:
                1.线程不安全,效率高
                2.底层实现是链表,查询慢,增删快
        Set:(元素唯一)
            HashSet:(无序)
                1.底层实现是哈希表,判断依赖hashCode方法和equals方法,执行顺序:
                    判断hashCode()是否相同
                        是:判断equals()是否为true
                            是true:说明元素重复,不进行添加
                            否false:添加元素到集合
                        否:添加元素到集合
            LinkedHashSet:(有序)
                1.底层实现是链表和哈希表,链表保证有序,哈希表保证唯一
            TreeSet:(可自行排序,默认按照自然排序)
                1.底层实现是红黑树
                2.判定元素相同的标准是所存元素的compareTo返回是否为0
                3.排序两种方式:
                    a.自然排序(存储元素实现Comparable接口)
                    b.比较器排序(初始化时候接收一个Comparator接口的实现类的实例)    
    Map:(双列集合)
        A:Map集合的数据结构仅仅针对键有效,与值无关。
        B:存储的是键值对形式的元素,键唯一,值可重复。
        HashMap:
            1.底层实现是哈希表,判断依赖hashCode方法和equals方法,执行顺序:
                    判断hashCode()是否相同
                        是:判断equals()是否为true
                            是true:说明元素重复,不进行添加
                            否false:添加元素到集合
                        否:添加元素到集合
        LinkedHashMap:
            1.底层实现是链表和哈希表,链表保证有序,哈希表保证唯一
        Hashtable:
            1.底层实现是哈希表,判断依赖hashCode方法和equals方法,执行顺序:
                    判断hashCode()是否相同
                        是:判断equals()是否为true
                            是true:说明元素重复,不进行添加
                            否false:添加元素到集合
                        否:添加元素到集合
        TreeMap:
            1.底层实现是红黑树
                2.判定元素相同的标准是所存元素的compareTo返回是否为0
                3.排序两种方式:
                    a.自然排序(存储元素实现Comparable接口)
                    b.比较器排序(初始化时候接收一个Comparator接口的实现类的实例)    

2.选择:
    看需求:是否是键值对类型的数据:
        是:Map:
            键是否需要排序:
                是:TreeMap
                否:HashMap
                不清楚的使用HashMap
        否:Collection:
            元素是否唯一:
                是:Set
                    元素是否需要排序:
                        是:TreeSet
                        否:HashSet
                    不清的使用HashSet
                否:List
                    是否需要线程安全;
                        是:Vector
                        否:ArrayList或者LinkedList
                            增删多:LinkedList
                            查询多:ArrayList
                        不清楚就使用ArrayList

3.使用:
    Collection:
        常用方法:
            add()            
            remove()
            contains()
            iterator()
            size()
            clear()
        遍历:
            1.增强for(forEach)
            2.迭代器
        子类:
            List:
                常用方法:
                    get()
                遍历:
                    普通for循环
            Set:
    Map:
        常用方法:
            put()
            remove()
            containsKey(),containsValue()
            keySet()
            get()
            values()
            entrySet()
            size()
        遍历:
            1.根据键找值
            2.根据键值对对象查找相应的键和值


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值