您好,登錄后才能下訂單哦!
如何正確的使用java迭代器?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1.概念
是提供一種方法對一個容器對象中的各個元素進(jìn)行訪問,而又不暴露該對象容器的內(nèi)部細(xì)節(jié)。
java中提供了很多種集合,它們在存儲元素時,采用的存儲方式不同。所以當(dāng)我們要取出這些集合中的元素時,可以通過一種通用的獲取方式來完成。
Collection集合元素的通用獲取方式: 在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來;繼續(xù)再判斷,如果還有就再取出來。一直到把集合中的所有元素全部取出。這種取出方式專業(yè)術(shù)語稱為迭代。
集合中把這種取元素的方式描述在Iterator接口中。
迭代器是java定義的一個接口,在java.util.Iterator包下。該接口有四大方法,便于實(shí)現(xiàn)了該接口的集合類進(jìn)行訪問操作。
public interface Iterator<E> { E next(); boolean hasNextO; void remove0; default void forEachRemaining(Consumer<? super E> action); }
實(shí)例擴(kuò)展:
public class Demo { public static void main(String[] args) { ActualContainer container = new ActualContainer(); for(int i = 5 ; i < 20 ; i++){ container.add(i); } Iterator iterator = container.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } } /** * 迭代器接口,包含有常用的迭代器方法 */ interface Iterator{ public boolean hasNext(); public Object next(); } /** * 容器接口:包含有獲取迭代器的方法 */ interface Container{ public Iterator iterator(); } /** * 具體實(shí)現(xiàn)類 * @author jiaoyuyu * */ class ActualContainer implements Container{ private List<Object> list = new ArrayList<>(); public void add(Object obj){ this.list.add(obj); } public void remove(Object obj){ this.list.remove(obj); } public Object get(int index){ if(index <= (this.list.size() - 1)){ return this.list.get(index); } return null; } public Iterator iterator() { return new ActualIterator(); } private class ActualIterator implements Iterator{ private int pointer = 0; public boolean hasNext() { return this.pointer < list.size() ? true : false; } public Object next() { if(this.pointer < list.size()){ Object obj = list.get(pointer); pointer++; return obj; } return null; } } }
關(guān)于如何正確的使用java迭代器問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。