collection
表示一組物件,他是集中收集的意思,就是把一組資料收集起來,
collection
介面的兩個子介面
set,list:
set中的資料沒有順序,不可以重複。
list中的資料有順序,可以重複。
collection介面中定義的方法:
boolean add(object element);
boolean remove(object element);
boolean contains(object element);
int size();
boolean isempty();
void clear(
iterator iterator();
boolean containsall(collection c);
boolean addall(collection c);
boolean removeall(collection c);
boolean retainall(collection c); //交集
object toarray();
有序的collection,此介面的使用者可以成對列表中的每個元素的插入位置進行精確的定位,使用者可以根據元素的整數索引(在列表中的位置)訪問元素,並搜尋列表當中的元素。
與set不同,列表通常允許重複的元素,更精確的講列表通常允許滿足e1.equals(e2)條件的元素e1,e2並存,並且如果列表本身允許null元素的話,通常他們允許多個null元素。
多了一些跟順序有關的方法:
void add(object element);
void add(int index,object element);
object get(int index);
object set(int index,object element);//修改某一位置的元素。
object remove(int index);
int index(object o);//返回某一元素的索引,如果沒有該元素返回-1;
arraylist: 底層用陣列實現的list,特點是:查詢效率高 ,增刪效率低,不安全。
linkedlist:底層是雙向鍊錶實現的list,特點是:查詢效率低,增刪效率高,執行緒不安全。
vector:底層用陣列實現的list,特點:執行緒安全.
如何選用?
執行緒安全用vector.
執行緒不安全,查詢較多用arraylist,增加或刪除元素較多用linkedlist.
如何選用?
執行緒安全用vector.
執行緒不安全,查詢較多用arraylist,增加或刪除元素較多用linkedlist.
hashset:採用雜湊演算法實現的set
hashset的底層是用hashmap實現的,因此查詢效率較高,由於採用hashcode演算法直接確定元素的記憶體位址,增刪效率也挺高的。
public class testset
}
STL容器的介面
bool empty const size type size const reference top reference為引用 const reference top const void push const value type x void pop stack預設使用deque來實現。通過s...
關於STL 容器當中存放指標的個人理解
首先stl容器中最好是不要存放指標,如果外部被new出來的物件被銷毀了,那麼存放在容器中的指標就變成空指標了,這樣在遍歷的時候,就 了。但是在stl容器中存放指標也有他的好處。首先是在容器中放入物件 先來看看現象,在vector析構後。呼叫了a的析構函式。按正常套路來析構,應該是析構10次,但是注意...
Java容器 Collection介面
1.容器和陣列的區別 容器,只能存放引用型別的資料,基本型別的資料需要轉換成它的包裝類,才可以使用,長度是可以變得。陣列,基本資料型別和引用資料型別都可以存放,長度是固定的,在定義的時候就已經被定義好了。2.collection 底層就是乙個陣列,每次新增資料的時候就會判斷容量是否能夠存放,不能夠存...