java中List、Map、Set、Stack、Queue、Collections等的使用java
List
建立方法: List<String> list=new ArrayList<>(); 數組
add(val) : 添加元素。函數
get(index) : 獲取元素。測試
remove(index) : 刪除元素。spa
remove(Object o) : 按照元素內容刪除 {eg:list.add("marry") ; list.remove(0)==list.remove("merry");}。code
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的使用以下
-
vector.add(6);
:單純的add表示從結尾加入元素 -
vector.size()
:size()能求出vector的所含元素的個數 -
vector.remove(1);
:remove(1)表示刪去第1個元素,注意計數從0開始 -
vector.remove(vector.lastElement());
:刪去最後一個元素 -
vector.add(0, 1.8888);
:在第0個位置 加入 1.8888這個元素 -
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開始計數。