ArrayList和Linkedlist的區別


ArrayList,linkedlist,Vector,stack是list的四大實現類,
  ArrayList實現了動態數組的數據結構,linkedlist是基於鏈表結構的數據結構
ArrayList適合查找,linkedlist適合增刪,
  查找:ArrayList 效率快 : 因為linkedlist 是線性的數據存儲,需要移動指針,
  增刪:LinkedList 效率高 : 因為linkedlist在非首尾的增刪操作,如果是操作ArrayList 會影響到數組的下標。
擴充:
  數組和list之間的轉換
  數組-list Arrays.aslist(數組);
  lsit-數組 list.toArray();
queue 中的pull()和remove()區別
  相同: 都是返回第一個元素,並在隊列中,刪除返回的元素。
  不同: 如果獲取到的元素為null pull()返回的是null,remover()則拋出異常 NoSuchElementException
  queue.offec("元素") - 添加元素

擴展:假設一個無線循環,使用arraylist,linkedlist 存儲,直至內存溢出,哪一個存儲的數據多

  分析:

    arraylist:動態數組,每一次創建,都會申請一定的內存大小,倘若,假設我申請1G的空間,但是內存剩余只有500M,這個時候,是申請失敗的。因此不會數據存儲失敗,剩余空間無法利用。

    linkedlist:碎片化的存儲,不需要申請內存空間,因此不會出現上述問題。

  答案:linkedlist 存儲的數據多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM