java中List、Map、Set、Stack、Queue、Collections等的使用

java中List、Map、Set、Stack、Queue、Collections等的使用

List

創建方法: List<String> list=new ArrayList<>();

add(val) : 添加元素。

get(index) : 獲取元素。

remove(index) : 刪除元素。

remove(Object o) : 按照元素內容刪除 {eg:list.add("marry") ; list.remove(0)==list.remove("merry");}。

contains(Object o) : 返回true/false 表示是否包含摸個元素。

set(index,element) : 將下標爲index的元素替換爲element。

add(index,element) : 將element插入到第index位置,然後將後面元素後移一位。

indexOf(Object o) :返回元素的第一個位置

lastIndexOf(Object o) :返回元素的最後一個位置

subList(fromindex,toindex) :生成一個新的List{eg:phone=phone.subList(1, 4);利用索引1-4的對象重新生成一個list,但是不包含索引爲4的元素,4-1=3 }

size() :返回List的長度。

equals(List list) :判斷兩個list中的元素是否相同。

isEmpty() :判斷List是否爲空。

iterator() :返回Iterator對象{eg:Iterator iterator = list.iterator(); iterator.next() :獲取下一個元素 }

toString() : 將集合轉換爲字符串,並返回轉化後的字符串。

toArray() : 將集合轉換爲數組,並返回轉化後的數組。

 

類型轉換 :List<StringBuffer> lst=new ArrayList<>();

for(String string:person){ lst.add(StringBuffer(string));

去重

List<String> lst1=new ArrayList<>();

List<String> lst2=new ArrayList<>();

for (String s:lst1)

{

  if (Collections.frequency(lst2, s)<1)

  {

    lst2.add(s);

  }

}

Map

put(key,value) :向map集合中添加Key爲key,Value爲value的元素,當添加成功時返回null,否則返回value。

就是說Map集合中的Key是不能重複的,這就類似於Set集合中元素不能重複,但是Map集合中的Value是可以重複。

putAll(Map m) :向map集合中添加指定集合的所有元素 {eg: map1.putAll(map2);}

clear() : 把map集合中所有的鍵值刪除 .

containsKey(Object key) :檢出map集合中有沒有包含Key爲key的元素,如果有則返回true,否則返回false。

containsValue(Object value) : 檢出map集合中有沒有包含Value爲value的元素,如果有則返回true,否則返回false。

entrySet() :返回map到一個Set集合中,以map集合中的"Key=Value"的形式返回到set中。 {eg: Set set = map.entrySet(); }

equals(Object o) :判斷兩個Map是否相等

get(Object key) : 根據map集合中元素的Key來獲取相應元素的Value .

int hashCode(): 返回map集合的哈希碼值 {eg: hashcode = map1.hashCode();}

isEmpty() : 檢出map集合中是否有元素,如果沒有則返回true,如果有元素則返回false .

keySet() : 返回map集合中所有Key .{eg: Set set = map.keySet() ;}

remove(Object key) : 刪除Key爲key值的元素 .

size() :返回map集合中的元素個數

values() :返回map集合中所有的Value到一個Collection集合 {eg:Collections col = map.values(); }

Set

Set<Integer> test = new TreeSet<>();

add(val) :向集合中添加元素

clear() :去掉集合中的所有元素

contains(val):判斷集合中是否包含某個元素

isEmpty():判斷集合是否爲空

iterator():  主要用於遞歸集合,返回一個Iterator()對象

remove(Object o) :從集合中去掉特定對象

size() :返回集合大小

HashSet類

不能保證元素的排列順序,順序可能與添加順序不同,順序也可能發生變化;

HashSet不是同步的;

集合 元素可以是null;

當向HashSet集合中存入一個元素時,HashSet會調用該對象的hashCode方法來得到該對象的hashCode值,然後根據該hashCode值決定該對象在HashSet中的存儲位置。如果有兩個元素通過equals方法比較true,但它們的hashCode方法返回的值不相等,HashSet將會把它們存儲在不同位置,依然可以添加成功。也就是說。HashSet集合判斷兩個元素的標準是兩個對象通過equals方法比較相等,並且兩個對象的hashCode方法返回值也相等。靠元素重寫hashCode方法和equals方法來判斷兩個元素是否相等,如果相等則覆蓋原來的元素,依此來確保元素的唯一性

LinkedHashSet類HashSet還有一個子類LinkedList、LinkedHashSet集合也是根據元素的hashCode值來決定元素的存儲位置,但它同時使用鏈表維護元素的次序,這樣使得元素看起來是以插入的順序保存的,也就是說當遍歷集合LinkedHashSet集合裏的元素時,集合將會按元素的添加順序來訪問集合裏的元素。輸出集合裏的元素時,元素順序總是與添加順序一致。但是LinkedHashSet依然是HashSet,因此它不允許集合重複。

TreeSet類

TreeSet是SortedSet接口的實現類,TreeSet可以確保集合元素處於排序狀態。

TreeSet內部實現的是紅黑樹,默認整形排序爲從小到大。

與HashSet集合相比,TreeSet還提供了幾個額外方法:

Comparator comparator():如果TreeSet採用了定製順序,則該方法返回定製排序所使用的Comparator,如果TreeSet採用自然排序,則返回null;

Object first():返回集合中的第一個元素;

Object last():返回集合中的最後一個元素;

Object lower(Object e):返回指定元素之前的元素。

Object higher(Object e):返回指定元素之後的元素。

SortedSet subSet(Object fromElement,Object toElement)

返回此Set的子集合,含頭不含尾

SortedSet headSet(Object toElement):返回此Set的子集,由小於toElement的元素組成;

SortedSet tailSet(Object fromElement):返回此Set的子集,由大於fromElement的元素組成;

輸出的集合都是有序的

Stack

boolean empty()  測試堆棧是否爲空。

Object peek( ) 查看堆棧頂部的對象,但不從堆棧中移除它。

Object pop( ) 移除堆棧頂部的對象,並作爲此函數的值返回該對象。

Object push(Object element) 把項壓入堆棧頂部。

int search(Object element) 返回對象在堆棧中的位置,以 1 爲基數

 

Queue

add(val)        增加一個元索                     如果隊列已滿,則拋出一個IIIegaISlabEepeplian異常   

remove()   移除並返回隊列頭部的元素    如果隊列爲空,則拋出一個NoSuchElementException異常   

element()  返回隊列頭部的元素             如果隊列爲空,則拋出一個NoSuchElementException異常   

offer(val)       添加一個元素並返回true       如果隊列已滿,則返回false   

poll()         移除並返問隊列頭部的元素    如果隊列爲空,則返回null   

peek()       返回隊列頭部的元素             如果隊列爲空,則返回null   

put(val)         添加一個元素                      如果隊列滿,則阻塞   

take(val)        移除並返回隊列頭部的元素     如果隊列爲空,則阻塞

 

Collections

Collections類裏面包括動態、有序、可變大小的一維數組Vector與ArrayList。

Vector的使用如下

  1. vector.add(6);:單純的add表示從結尾加入元素

  2. vector.size():size()能求出vector的所含元素的個數

  3. vector.remove(1);:remove(1)表示刪去第1個元素,注意計數從0開始

  4. vector.remove(vector.lastElement());:刪去最後一個元素

  5. vector.add(0, 1.8888); :在第0個位置 加入 1.8888這個元素

  6. vector.set(0, "a");:把第0個位置這個元素 改爲 a

ArrayList使用方法

ArrayList<Double> arraylist = new ArrayList<Double>();

  1. arraylist.add(1.0);:單純的add表示從結尾加入元素

  2. arraylist.size();:size()能求出所含元素的個數

  3. arraylist.remove(1);:remove(1)表示刪去第1個元素,注意計數從0開始

  4. arraylist.remove(arraylist.size() - 1);:刪去最後一個元素

  5. arraylist.add(0, 1.8888); :在第0個位置 加入 1.8888這個元素

  6. arraylist.set(0, 9.0);:把第0個位置這個元素 改爲 9.0

  7. Collections.sort(arraylist); :如果arraylist不是抽象類型,則支持排序

  8. arraylist.get(i);:得到第i個位置的元素值,注意從0開始計數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章