亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java迭代器基礎(chǔ)知識(shí)點(diǎn)總結(jié)

 更新時(shí)間:2021年01月21日 15:22:30   作者:小妮淺淺  
在本篇內(nèi)容里小編給大家整理了一篇關(guān)于java迭代器基礎(chǔ)知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。

在學(xué)習(xí)集合的時(shí)候,我們經(jīng)常會(huì)說(shuō)把集合里的元素進(jìn)行遍歷,實(shí)際上這個(gè)過(guò)程有一個(gè)專門的名稱,叫做迭代。迭代器就是對(duì)這種遍歷進(jìn)行操作的工具,好處是能夠使內(nèi)部程序的細(xì)節(jié)得到保密。下面我們就java迭代器的概念、作用進(jìn)行具體的分析,會(huì)結(jié)合一些元素、接口的知識(shí)點(diǎn),最后帶來(lái)使用迭代器的實(shí)例。

1.概念

是提供一種方法對(duì)一個(gè)容器對(duì)象中的各個(gè)元素進(jìn)行訪問(wèn),而又不暴露該對(duì)象容器的內(nèi)部細(xì)節(jié)。

2.作用

java中提供了很多種集合,它們?cè)诖鎯?chǔ)元素時(shí),采用的存儲(chǔ)方式不同。所以當(dāng)我們要取出這些集合中的元素時(shí),可以通過(guò)一種通用的獲取方式來(lái)完成。

Collection集合元素的通用獲取方式: 在取元素之前先要判斷集合中有沒(méi)有元素,如果有,就把這個(gè)元素取出來(lái);繼續(xù)再判斷,如果還有就再取出來(lái)。一直到把集合中的所有元素全部取出。這種取出方式專業(yè)術(shù)語(yǔ)稱為迭代。

集合中把這種取元素的方式描述在Iterator接口中。

3.實(shí)例

迭代器是java定義的一個(gè)接口,在java.util.Iterator包下。該接口有四大方法,便于實(shí)現(xiàn)了該接口的集合類進(jìn)行訪問(wè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迭代器基礎(chǔ)知識(shí)點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)java迭代器的基本概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis動(dòng)態(tài)SQL?if的test寫法及規(guī)則詳解

    mybatis動(dòng)態(tài)SQL?if的test寫法及規(guī)則詳解

    這篇文章主要介紹了mybatis動(dòng)態(tài)SQL?if的test寫法及規(guī)則詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java 進(jìn)階必備之ssm框架全面整合

    Java 進(jìn)階必備之ssm框架全面整合

    SSM框架是spring MVC ,spring和mybatis框架的整合,是標(biāo)準(zhǔn)的MVC模式,將整個(gè)系統(tǒng)劃分為表現(xiàn)層,controller層,service層,DAO層四層,使用spring MVC負(fù)責(zé)請(qǐng)求的轉(zhuǎn)發(fā)和視圖管理,spring實(shí)現(xiàn)業(yè)務(wù)對(duì)象管理,mybatis作為數(shù)據(jù)對(duì)象的持久化引擎
    2021-10-10
  • Spring處理@Async導(dǎo)致的循環(huán)依賴失敗問(wèn)題的方案詳解

    Spring處理@Async導(dǎo)致的循環(huán)依賴失敗問(wèn)題的方案詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot中的@Async導(dǎo)致循環(huán)依賴失敗的原因及其解決方案,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • Java中sort排序函數(shù)實(shí)例詳解

    Java中sort排序函數(shù)實(shí)例詳解

    我們經(jīng)常使用java中的sort排序,確實(shí)好用,但是其中原理大多數(shù)人都是不了解的,下面這篇文章主要給大家介紹了關(guān)于Java中sort排序函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Spring中ContextLoaderListener監(jiān)聽詳解

    Spring中ContextLoaderListener監(jiān)聽詳解

    這篇文章主要介紹了Spring中ContextLoaderListener監(jiān)聽詳解,SpringMVC啟動(dòng)時(shí)會(huì)啟動(dòng)WebApplicationContext類型的容器,并且會(huì)調(diào)用之前分析的refresh方法,需要的朋友可以參考下
    2024-01-01
  • Spring Boot利用@Async如何實(shí)現(xiàn)異步調(diào)用:自定義線程池

    Spring Boot利用@Async如何實(shí)現(xiàn)異步調(diào)用:自定義線程池

    這篇文章主要給大家介紹了關(guān)于Spring Boot利用@Async如何實(shí)現(xiàn)異步調(diào)用:自定義線程池的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2018-05-05
  • Java?死鎖解決方案順序鎖和輪詢鎖

    Java?死鎖解決方案順序鎖和輪詢鎖

    這篇文章主要介紹了Java?死鎖解決方案順序鎖和輪詢鎖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 使用SpringBoot簡(jiǎn)單了解Druid的監(jiān)控系統(tǒng)的配置方法

    使用SpringBoot簡(jiǎn)單了解Druid的監(jiān)控系統(tǒng)的配置方法

    這篇文章主要介紹了使用SpringBoot簡(jiǎn)單了解Druid的監(jiān)控系統(tǒng)的配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot2.0整合tk.mybatis異常解決

    SpringBoot2.0整合tk.mybatis異常解決

    本文主要介紹了SpringBoot2.0整合tk.mybatis異常,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java多線程 原子性操作類的使用

    Java多線程 原子性操作類的使用

    這篇文章主要介紹了Java多線程 原子性操作類的使用,在java5以后,我們接觸到了線程原子性操作,也就是在修改時(shí)我們只需要保證它的那個(gè)瞬間是安全的即可,經(jīng)過(guò)相應(yīng)的包裝后可以再處理對(duì)象的并發(fā)修改,本文總結(jié)一下Atomic系列的類的使用方法,下面一起進(jìn)入文章了解詳細(xì)內(nèi)容
    2021-10-10

最新評(píng)論