摘要:二類庫中的集合接口和迭代器接口集合類的基本接口是接口,有兩個(gè)基本方法方法用于向集合中添加元素,添加元素確實(shí)改變集合,返回,否則集中不允許有重復(fù)的對(duì)象。
一. 集合接口
Java集合類庫將接口(interface)與實(shí)現(xiàn)(implementation)分離。
舉個(gè)例子,隊(duì)列接口的最小形式
interface Queue{ void add(E element); E remove(); int size(); }
但是隊(duì)列實(shí)現(xiàn)的兩種方式:一種是使用循環(huán)數(shù)組;另一種是使用鏈表。
二. Java類庫中的集合接口和迭代器接口集合類的基本接口是Collection接口,有兩個(gè)基本方法
public inter Collection{ boolean add(E element); Interator iterator }
add方法用于向集合中添加元素,添加元素確實(shí)改變集合,返回true,否則false;集中不允許有重復(fù)的對(duì)象。
iterator方法用于返回一個(gè)實(shí)現(xiàn)了Iterator接口的對(duì)象。依次訪問集合中的元素
包含3個(gè)方法
public interface Iterator{ E next(); //查找下一個(gè) boolean hasNext(); //是否有下一個(gè) void remove(); //刪除 }
集合的末尾,next方法拋出NoSuchElementException,需要在調(diào)用next之前調(diào)用hasNext方法。
Collectionc=...; Iterator iter=c.iterator(); while(iter.hasNext()) { String element=iter.next(); //do something }
java SE5.0起可以使用 for each進(jìn)行循環(huán)
for(String element :c) { // do something }
可以與任意實(shí)現(xiàn)了Iterable接口的對(duì)象一起工作,Iterable接口
pulic interface Iterable{ Iterator iterator(); }
標(biāo)準(zhǔn)類中的任何集合都可以使用 for each循環(huán)
元素被訪問的順序取決于集合類型。
備注:Iterator接口的next和hasNext方法與Enumeration接口的nextElement和hasMoreElements方法的作用一樣,但是這個(gè)方法名太累贅,更喜歡短的方法名稱。
java迭代器認(rèn)為是位于兩個(gè)元素之間,當(dāng)調(diào)用next時(shí),迭代器就越過下一個(gè)元素,并返回剛剛越過的那個(gè)元素的引用。
2. 刪除元素刪除上次調(diào)用next方法時(shí)返回的元素。想要?jiǎng)h除某個(gè)元素,仍然需要越過這個(gè)元素。如果調(diào)用remove之前沒有調(diào)用next,將拋出一個(gè)IllegalStateException異常。所以每次刪除之前,之前都要調(diào)用next方法
Iterator3.泛型實(shí)用方法it = stack.iterator(); //刪除 it.next(); it.remove(); it.next(); it.remove();
Collection與Iterator都是泛型接口,可以編寫操作任何集合類型的實(shí)用方法。類庫設(shè)計(jì)者:某些實(shí)用方法非常有用,應(yīng)該提供給用戶。
但是實(shí)現(xiàn)Collection接口的每一個(gè)類都要提供太多的例行方法,過于繁瑣,java類庫提供AbstractCollection,將基礎(chǔ)方法size和iterator抽象化,提供了例行方法,使實(shí)際的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)者并沒有需要實(shí)現(xiàn)所有例行方法。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64984.html
集合接口 核心集合接口封裝了不同類型的集合,如下圖所示,這些接口允許獨(dú)立于其表示的細(xì)節(jié)來操縱集合,核心集合接口是Java集合框架的基礎(chǔ),如下圖所示,核心集合接口形成層次結(jié)構(gòu)。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類推,另請(qǐng)注意,層次結(jié)構(gòu)...
集合介紹 本節(jié)介紹Java集合框架,在這里,你將了解集合是什么以及它們?nèi)绾问鼓愕墓ぷ鞲p松、程序更好,你將了解構(gòu)成Java集合框架的核心元素 — 接口、實(shí)現(xiàn)、聚合操作和算法。 集合 — 有時(shí)稱為容器 — 只是一個(gè)將多個(gè)元素組合到一個(gè)單元中的對(duì)象,集合用于存儲(chǔ)、檢索、操作和傳遞聚合數(shù)據(jù)。通常,它們代表形成自然組的數(shù)據(jù)項(xiàng),例如撲克牌(卡片集合)、郵件文件夾(信件集合)或電話目錄(名稱到電話號(hào)碼的映射)...
摘要:說一說迭代器通過集合對(duì)象獲取其對(duì)應(yīng)的對(duì)象判斷是否存在下一個(gè)元素取出該元素并將迭代器對(duì)象指向下一個(gè)元素取出元素的方式迭代器。對(duì)于使用容器者而言,具體的實(shí)現(xiàn)不重要,只要通過容器獲取到該實(shí)現(xiàn)的迭代器的對(duì)象即可,也就是方法。 前言 歡迎關(guān)注微信公眾號(hào):Coder編程獲取最新原創(chuàng)技術(shù)文章和相關(guān)免費(fèi)學(xué)習(xí)資料,隨時(shí)隨地學(xué)習(xí)技術(shù)知識(shí)!** 本章主要介紹Collection集合相關(guān)知識(shí),結(jié)合面試中會(huì)提到...
摘要:集合類主要負(fù)責(zé)保存盛裝其他數(shù)據(jù),因此集合類也被稱為容器類。所有的集合類都位于包下。表示一組對(duì)象,這些對(duì)象也稱為的元素。成員方法把集合轉(zhuǎn)成數(shù)組迭代器,集合的專用遍歷方式之接口概述有序的,也稱為序列。 前言 在編程中,常常需要集中存放多個(gè)數(shù)據(jù)。從傳統(tǒng)意義上講,數(shù)組是我們的一個(gè)很好的選擇,前提是我們實(shí)現(xiàn)已經(jīng)明確知道我們將要保存的對(duì)象的數(shù)量。 一旦在數(shù)組初始化時(shí)指定了數(shù)組長(zhǎng)度,這個(gè)數(shù)組長(zhǎng)度就...
摘要:集合框架重點(diǎn)理解用于存儲(chǔ)數(shù)據(jù)的容器。集合容器在不斷向上抽取過程中。出現(xiàn)了集合體系。,刪除將集合中的元素全刪除,清空集合。刪除集合中指定的對(duì)象。注意刪除成功,集合的長(zhǎng)度會(huì)改變。作用用于取集合中的元素。是集合特有的迭代器。是單列集合是雙列集合 集合框架(重點(diǎn)理解):用于存儲(chǔ)數(shù)據(jù)的容器。特點(diǎn):1:對(duì)象封裝數(shù)據(jù),對(duì)象多了也需要存儲(chǔ)。集合用于存儲(chǔ)對(duì)象。2:對(duì)象的個(gè)數(shù)確定可以使用數(shù)組,但是不確定怎...
閱讀 1834·2021-11-24 09:39
閱讀 2302·2021-09-30 09:47
閱讀 4169·2021-09-22 15:57
閱讀 1888·2019-08-29 18:36
閱讀 3589·2019-08-29 12:21
閱讀 599·2019-08-29 12:17
閱讀 1276·2019-08-29 11:25
閱讀 734·2019-08-28 18:26