1.深入理解java集合List
阿新 • • 發佈:2019-01-29
下圖是java集合框架圖,Collection、Map是集合框架的頂級類,Iterator是集合迭代器。
Collection介紹(主要講解實現類,主要特點,適用場景,實現原理) 1、List介面,主要實現類Vector、ArrayList、LinkedList (1)Vector ,如下圖原始碼結構,可以看出Vector主要有3個成員變數,elementData是Vector 儲存資料的陣列成員,elementCount:記錄Vector 當前容量,capacityIncrement擴容增量
特點原理: Vector 底層是使用陣列儲存元素,因此隨機訪問非常迅速,但隨機插入和刪除元素卻要移動元素,Vector 使用本地方法
那LinkedList元素儲存在那裡呢?內部使用靜態內部類Node<E>來儲存陣列元素,看下面程式碼: private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } 通過程式碼可以看到,LinkedList節點類
適用場景:順序讀取,新增,刪除場景,不適合隨機讀寫,執行緒不安全。