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

首頁 > 編程 > Java > 正文

Thinking in java 集合容器

2019-11-11 06:59:59
字體:
供稿:網(wǎng)友

1collection 與 collections 的去區(qū)別

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

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

java.util.Collections 是一個包裝類。它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法。此類不能實例化,就像一個工具類,服務于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.將其他類型集合轉(zhuǎn)換為List:

Arrays.asList(非List類型的集合對象/可變參數(shù)的對象);方法可以將傳遞的參數(shù)轉(zhuǎn)變?yōu)長ist集合。如:Arrays.asList(new Object1(),new Object2(),…);

Arrays和Collections類似,是Array數(shù)組類型集合的工具類。

注意:Arrays.asList()方法轉(zhuǎn)換后的List對象是一個size不能改變的對象,如果對該對象做增加或者刪除元素操作時,將會報不支持的操作異常。

5.LinkedList:

LinkedList除了實現(xiàn)了基本的List接口以外,還提供了一些特定的方法,使得LinkedList可以方便地實現(xiàn)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迭代器是一個順序選擇和遍歷集合元素的對象,使用者不需要關(guān)心其底層的數(shù)據(jù)結(jié)構(gòu)和實現(xiàn)方式。Java中的Iterator迭代器是單向的。

Iterator的常用方法如下:

(1).collection對象.iterator()方法:將集合對象轉(zhuǎn)換為Iterator迭代器。

(2).iterator對象.hasNext()方法:判斷迭代器中是否還有元素。

(3).iterator對象.next()方法:獲取迭代器中下一個元素。(4).iterator對象.remove()方法:刪除迭代器中當前元素。

注意:使用迭代器的好處是,當數(shù)據(jù)結(jié)構(gòu)從List變?yōu)镾et之后,迭代集合的相關(guān)代碼一點都不用改變。

7.ListIterator:

ListIterator是Iterator的子類,它只能有List類型的集合產(chǎn)生,ListIterator是一個雙向的迭代器,即它可以向前和向后雙向遍歷集合。ListIterator的常用方法如下:

(1).list類型對象.listIterator():將List類型的集合轉(zhuǎn)換為ListIterator迭代器。

(2).list類型對象.listIterator(int n):將List類型的集合轉(zhuǎn)換為ListIterator迭代器,同時指定迭代器的起始元素為第n個元素。

(3).listIterator對象.hasNext():判斷迭代器中是否還有下一個元素。

(4).listIterator對象.next():獲取迭代器中的下一個元素。

(5).listIterator對象.hasprevious():判斷迭代器中是否還有前一個元素。

(6).listIterator對象.PRevious():獲取迭代器中的前一個元素。

(7).listIterator對象.set(元素對象):將當前迭代到的元素設(shè)置為另一個值。

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桃源县| 扎鲁特旗| 郁南县| 得荣县| 青岛市| 南昌县| 沭阳县| 若羌县| 梁河县| 余江县| 太白县| 九台市| 邛崃市| 科尔| 乌拉特中旗| 伊春市| 乐陵市| 衡山县| 加查县| 兴宁市| 余干县| 莱州市| 博白县| 盐津县| 巴里| 靖安县| 东阳市| 开鲁县| 冕宁县| 新泰市| 朝阳县| 毕节市| 密山市| 磐石市| 砀山县| 日照市| 肇东市| 洪洞县| 康乐县| 正安县| 大同市|