国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Thinking in java 集合容器

2019-11-14 08:58:32
字體:
來源:轉載
供稿:網友

1collection 與 collections 的去區別

java.util.Collection 是一個集合接口。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現。Collection接口的意義是為各種具體的集合提供了最大化的統一操作方式。

 Collection   ├List   │├LinkedList   │├ArrayList   │└Vector   │ └Stack   └Set 

java.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();      }  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐陵市| 叶城县| 樟树市| 文水县| 仪征市| 宜宾市| 五河县| 柳河县| 景泰县| 桂林市| 苗栗市| 广丰县| 乐陵市| 乌拉特中旗| 黔东| 石泉县| 称多县| 山阳县| 韶关市| 郧西县| 徐水县| 蒲江县| 张家界市| 科技| 朝阳县| 海南省| 福贡县| 康平县| 厦门市| 黎平县| 灵武市| 遂溪县| 明溪县| 监利县| 达拉特旗| 石泉县| 景泰县| 邯郸县| 鄱阳县| 临泉县| 镇平县|