1collection 與 collections 的去區別
java.util.Collection 是一個集合接口。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現。Collection接口的意義是為各種具體的集合提供了最大化的統一操作方式。
Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Setjava.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態多態方法。此類不能實例化,就像一個工具類,服務于Java的Collection框架。
例如:
Collection <Integer> collection = new ArrayList<Integer>(ArrayList.asLIst(1,2,3,4));
collection.addAll(ArrayList.asLIst(3,5,8));
collections.addAll(collection,11,12);//將11 12 放到collection中
注意:Collections是Java集合容器的工具類,相比于(1),使用Collections的(2)更靈活。
2 集合中添加另一個集合的方法:
collection.addAll();
collectons.addAll(list,a,b);
3collection 用法
3.將其他類型集合轉換為List:
Arrays.asList(非List類型的集合對象/可變參數的對象);方法可以將傳遞的參數轉變為List集合。如:Arrays.asList(new Object1(),new Object2(),…);
Arrays和Collections類似,是Array數組類型集合的工具類。
注意:Arrays.asList()方法轉換后的List對象是一個size不能改變的對象,如果對該對象做增加或者刪除元素操作時,將會報不支持的操作異常。
5.LinkedList:
LinkedList除了實現了基本的List接口以外,還提供了一些特定的方法,使得LinkedList可以方便地實現Stack、Queue以及雙端Queue的功能。
LinkedList提供的非List接口方法:
(1).getFirst():獲取并且不移除LinkedList集合中第一個元素。如果集合為空,拋出NoSuchElementException異常。
(2).element():獲取并且不移除LinkedList集合中第一個元素。如果集合為空,拋出NoSuchElementException異常。
(3).peek():獲取并且不移除LinkedList集合中第一個元素。如果集合為空,則返回null。
(4).removeFirst():獲取并且移除LinkedList集合中第一個元素。如果集合為空,拋出NoSuchElementException異常。
(5).remove():獲取并且移除LinkedList集合中第一個元素。如果集合為空,拋出NoSuchElementException異常。
(6).poll():獲取并且移除LinkedList集合中第一個元素。如果集合為空,則返回null。
(7).addFirst():向LinkedList集合的頭部插入一個元素。
(8).add():向LinkedList集合的尾部插入一個元素。
(9).offer():向LinkedList集合的尾部插入一個元素。
(10).removeLast():獲取并且移除LinkedList集合中最后一個元素。如果集合為空,拋出NoSuchElementException異常。
6.Iterator:
Iterator迭代器在java集合容器中應用比較廣泛,對于List類型的集合,可以通過下標索引值獲取到指定的元素,而對于Set類型的集合,因為Set是沒有索引的,因此只能通過迭代器來遍歷。
Iterator迭代器是一個順序選擇和遍歷集合元素的對象,使用者不需要關心其底層的數據結構和實現方式。Java中的Iterator迭代器是單向的。
Iterator的常用方法如下:
(1).collection對象.iterator()方法:將集合對象轉換為Iterator迭代器。
(2).iterator對象.hasNext()方法:判斷迭代器中是否還有元素。
(3).iterator對象.next()方法:獲取迭代器中下一個元素。(4).iterator對象.remove()方法:刪除迭代器中當前元素。
注意:使用迭代器的好處是,當數據結構從List變為Set之后,迭代集合的相關代碼一點都不用改變。
7.ListIterator:
ListIterator是Iterator的子類,它只能有List類型的集合產生,ListIterator是一個雙向的迭代器,即它可以向前和向后雙向遍歷集合。ListIterator的常用方法如下:
(1).list類型對象.listIterator():將List類型的集合轉換為ListIterator迭代器。
(2).list類型對象.listIterator(int n):將List類型的集合轉換為ListIterator迭代器,同時指定迭代器的起始元素為第n個元素。
(3).listIterator對象.hasNext():判斷迭代器中是否還有下一個元素。
(4).listIterator對象.next():獲取迭代器中的下一個元素。
(5).listIterator對象.hasprevious():判斷迭代器中是否還有前一個元素。
(6).listIterator對象.PRevious():獲取迭代器中的前一個元素。
(7).listIterator對象.set(元素對象):將當前迭代到的元素設置為另一個值。
8.Map遍歷3中方法:Map<String, Object>map = new HashMap<String, Object>();map.put(“test1”, object1);……map.put(“testn” , objectn);(1).Map的values()方法可以獲取Map值的集合:[java] view plain copy Iterator it = map.values().iterator(); while(it.hasNext()){ Object obj = it.next(); } (2).Map的keySet方法可以獲取Map鍵的Set集合:[java] view plain copy Set<String> keys = map.keySet(); for(Iterator it = key.iterator(); it.hasNext(); ){ String key = it.next(); Object obj = map.get(key); } (3).通過使用Entry來得到Map的key和value:[java] view plain copy Set<Map.Entry<String, Object>> entrySet = map.entrySet(); for(Iterator <Map.Entry<String, Object>> it = entrySet.iterator(); it.hasNext(); ){ Map.Entry<String, Object> entry = it.next(); String key = entry.getKey(); Object value = entry.getValue(); }
新聞熱點
疑難解答