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 存儲的數據多。