java基础之集合(Set,Map,List)总结

一.Collection接口

1.Collection接口两个子接口
    -List接口
        -ArrayList:
        -Vector:
        -LinkedList:
    -Set接口
        -HashSet:
            -LinkedHashSet:
        -TreeSet:
  2.Collection
        |--List    有序,可重复
            |--ArrayList
                底层数据结构是数组,查询快,增删慢。
                线程不安全,效率高
            |--Vector
                底层数据结构是数组,查询快,增删慢。
                线程安全,效率低
            |--LinkedList
                底层数据结构是链表,查询慢,增删快。
                线程不安全,效率高
        |--Set    无序,唯一
            |--HashSet
                底层数据结构是哈希表。
                如何保证元素唯一性的呢?
                    依赖两个方法:hashCode()和equals()
                    开发中自动生成这两个方法即可即重写
                |--LinkedHashSet
                    底层数据结构是链表和哈希表
                    由链表保证元素有序
                    由哈希表保证元素唯一
            |--TreeSet
                底层数据结构是红黑树。
                如何保证元素排序的呢?
                    自然排序,实现Comparable接口,并且重写compreTo方法。
                    比较器排序  自定义比较,实现Comparator接口,重写compare方法。
                如何保证元素唯一性的呢?
                    根据比较的返回值是否是0来决定

3.针对Collection集合我们到底使用谁呢?(掌握)
    唯一吗?
        是:Set
            排序吗?
                是:TreeSet
                否:HashSet
        如果你知道是Set,但是不知道是哪个Set,就用HashSet。
            
        否:List
            要安全吗?
                是:Vector
                否:ArrayList或者LinkedList
                    查询多:ArrayList
                    增删多:LinkedList
        如果你知道是List,但是不知道是哪个List,就用ArrayList。
    
    如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。
    
    如果你知道用集合,就用ArrayList。
4.:在集合中常见的数据结构(掌握)
    ArrayXxx:底层数据结构是数组,查询快,增删慢
    LinkedXxx:底层数据结构是链表,查询慢,增删快
    HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
    TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

二.Map接口

Map(掌握)
    1.基本概念:

(1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
(2)Map和Collection的区别?
        A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对
        B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。
    (3)Map接口功能概述
        A:添加功能
        B:删除功能
        C:判断功能
        D:获取功能
        E:长度功能

2.Map集合的遍历
        A:键找值(keyset方法)
            a:获取所有键的集合
            b:遍历键的集合,得到每一个键
            c:根据键到集合中去找值
        
        B:键值对对象找键和值(entrySet方法,键和值得关系映射存入set集合中)
            a:获取所有的键值对对象的集合
            b:遍历键值对对象的集合,获取每一个键值对对象
            c:根据键值对对象去获取键和值

使用集合时注意所需功能是什么,再去寻找相应的集合。

posted @ 2017-08-20 17:52  杰醍奋  阅读(119)  评论(0编辑  收藏  举报