美文网首页
集合框架

集合框架

作者: 南城的人 | 来源:发表于2017-04-16 21:48 被阅读0次

    List

     Collection 老祖先,接口(interface)
        List 子接口
     ArrayList,LinkedList,Vector 实现类     
        Set 子接口
     HashSet(无序),TreeSet(有序)
      ArrayList:动态数组,表示数组长度可变
      ArrayList,LinkedList 使用方法完全一样, 区别
       数据存储方式不一样,称为不同的数据结构
       ArrayList:基于数组实现(优点:连续存放,查找速度比较快,缺点是增加元素或者删除元素比较慢),
       LinkedList基于链表实现(缺点:不连续存放,查找速度比较慢,优点:增加元素或删除元素比较快)。
       Vector 向量:基于数组实现的,但是已经过时,现在都用ArrayList。
    

    Set

    集合中存储的是对象的引用,对象存在堆(heap)里
     注意不需要讲所有的方法
     迭代器(遍历器)
     迭代器用于遍历集合中的元素
     Iterator it=al.iterator();
     while(it.hasNext())
     {
       处理元素;
     }
     for(Iterator it=al.Iterator;it.hasNext())
     {
        处理元素
     }
     调用it.next()获取下一个元素,同时将指针往后指。
    List共性
    元素是有索引的,元素可以重复
    Set
    元素无索引,不可以重复(不可以放同样的元素,放不进去)
    HashSet(无序),TreeSet(有序)
    数据存储方式
    HashSet:哈希表
    TreeSet:二叉树
    

    Map

    方法一:传入的对象所属的类,必须实现Comparable
    
    方法二:初始化TreeSet时,传入一个比较器(比较器是一个实现了Comparator的类的对象)作为一个构造参数。
    
    ========================================================================================================
    
    Collection 接口 和 Map接口 集合框架的两个老祖先
    
                  Collection(接口)                                   Map(接口)  <和Set很像>
                      /\                                               /  |  \
                     /  \                                             /   |   \  
                    /    \                                           /    |    \
           List(接口)    Set(接口)                               HashMap,TreeMap,HashTable   
             /                  \                                      (实现类)                               
            /                    \                                   
           /(实现类)   (实现类)  \
    ArrayList,LinkedList,Vector        HashSet,TreeSet
    ArrayList基于数组    删除速度比较哦慢,查找速度比较快
    LinkedList基于链表   查找速度比较慢,增加删除速度比较快
    其中Collection 是单列集合,Map是双列集合
    key-value 键值对
    键不可以重复,value可以重复
    Map
       HashMap
       TreeMap
       HashTable
       HashTable:底层存储结构是哈希表,键和值都不可以是null。已过时。
       HashMap:  底层是哈希表,键值都可以是null。
       TreeMap:  底层是二叉树,支持键排序
    keyset,valueset,entryset(Map.Entry)
    读取方式
    1.获得所有键的集合keyset
    2.获得所有值的集合valueset
    3.获得所有条目entryset
    entry=一行,一个条目(包含键和值)
    TreeMap:有序的(键是有序的)
    关于泛型
    

    相关文章

      网友评论

          本文标题:集合框架

          本文链接:https://www.haomeiwen.com/subject/ojhzattx.html