Java集合
2019-11-05 10:06:46   0  举报             
     
         
 AI智能生成
  JDK1.8集合框架图
    作者其他创作
 大纲/内容
  结构图  
     Iterable    
     Collection接口    
     List接口    
     ArrayList    
     ArrayList是线性表(动态数组);线程不安全;基于Object数组实现,有序  
     默认容量大小是10;扩容后是(15)原来的1.5倍(扩容是创建一个新的数组,在复制)  
     查询快    
     get() 直接读取第几个下标,复杂度 O(1)
  
     增加删除慢    
     add(E) 添加元素,直接在后面添加,复杂度O(1)  
     add(index, E) 添加元素,在第几个元素后面插入,后面的元素需要向后移动,复杂度O(n)
  
     remove()删除元素,后面的元素需要逐个移动,复杂度O(n)  
     遍历用for 循环,效率高,用迭代器iterator 遍历会非常慢,因为做了很多安全检查但支持边遍历边remove  
     vector    
     Vector是线程安全的;涉及到元素更改的函数之前都加了关键字synchronized  
     Vector是矢量队列;是JDK1.0版本添加的类,他继承于AbstractList,实现了接口库List,RandomAccess,和Cloneable。  
     Vector与ArrayList的实现大同小异,都是使用数组作为底层的存储器,区别主要是线程安全  
     Stack  
     LinkedList    
     LinkedList 是基于链表实现的;线程不安全  
     添加删除快    
     add(E) 添加到末尾,复杂度O(1)  
     add(index, E) 添加第几个元素后,需要先查找到第几个元素,直接指针指向操作,复杂度O(n)  
     remove()删除元素,直接指针指向操作,复杂度O(1)  
     查询慢    
     get() 获取第几个元素,依次遍历,复杂度O(n)  
     Queue接口    
     Deque接口
  
     PrioityQueue
  
     Set接口    
     HashSet    
     LinkHashSet
    
     元素唯一,不可重复  
     有顺序    (在HashSet中,我们无法对其实例的元素进行排序,而当我们需要对元素插入的顺序进行排序时,LinkedHashSet是一个可用的选择)  
     元素唯一,不可重复  
     无顺序(指的跟存入的顺序不同,通过hash散列有自己的固定顺序)  
     TreeSet
    
     不允许为空  
     元素唯一,不可重复  
     有序
  
     线程不安全  
     Map接口    
     IdentityHashMap  
     HashMap
    
     LinkedHashMap  
     Hashtable
     
      
     SortedMap    
     TreeMap  
    
 
 
 
 
  0 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
  
  
 