最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

1.概念

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

2.作用

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

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

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

3.實(shí)例

迭代器是java定義的一個(gè)接口,在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迭代器基礎(chǔ)知識(shí)點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)java迭代器的基本概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring @Profile注解實(shí)現(xiàn)多環(huán)境配置

    Spring @Profile注解實(shí)現(xiàn)多環(huán)境配置

    這篇文章主要介紹了Spring @Profile注解實(shí)現(xiàn)多環(huán)境配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例

    MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例

    本文主要介紹了MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • MyBatis XML去除多余AND|OR前綴或逗號(hào)等后綴的操作

    MyBatis XML去除多余AND|OR前綴或逗號(hào)等后綴的操作

    這篇文章主要介紹了MyBatis XML去除多余AND|OR前綴或逗號(hào)等后綴的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java中StringUtils與CollectionUtils和ObjectUtil概念講解

    Java中StringUtils與CollectionUtils和ObjectUtil概念講解

    這篇文章主要介紹了Java中StringUtils與CollectionUtils和ObjectUtil概念,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • java 解壓與壓縮文件夾的實(shí)例詳解

    java 解壓與壓縮文件夾的實(shí)例詳解

    這篇文章主要介紹了 java 解壓與壓縮文件夾的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,掌握這樣的方法,需要的朋友可以參考下
    2017-10-10
  • Java實(shí)現(xiàn)線程按序交替執(zhí)行的方法詳解

    Java實(shí)現(xiàn)線程按序交替執(zhí)行的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)線程按序交替執(zhí)行,文中的示例代碼講解詳細(xì),對(duì)我們了解線程有一定幫助,需要的可以參考一下
    2022-10-10
  • Tomcat中session的管理機(jī)制

    Tomcat中session的管理機(jī)制

    這篇文章主要為大家詳細(xì)介紹了Tomcat中session的管理機(jī)制 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Swing拆分窗格控件JSplitPane使用詳解

    Swing拆分窗格控件JSplitPane使用詳解

    這篇文章主要為大家詳細(xì)介紹了Swing拆分窗格控件JSplitPane的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JAVA虛擬機(jī)中 -D, -X, -XX ,-server參數(shù)使用

    JAVA虛擬機(jī)中 -D, -X, -XX ,-server參數(shù)使用

    本文主要介紹了JAVA虛擬機(jī)中 -D, -X, -XX ,-server參數(shù)使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • SpringBoot超詳細(xì)講解yaml配置文件

    SpringBoot超詳細(xì)講解yaml配置文件

    這篇文章主要介紹了SpringBoot中的yaml配置文件問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

育儿| 滨海县| 周口市| 清流县| 泰顺县| 宝丰县| 昌黎县| 嫩江县| 丹寨县| 东阿县| 黄冈市| 东宁县| 南汇区| 海安县| 盘山县| 邵阳市| 仙居县| 安溪县| 龙江县| 邻水| 青海省| 三原县| 齐齐哈尔市| 宿迁市| 抚顺市| 青阳县| 西和县| 西宁市| 洮南市| 广平县| 扎鲁特旗| 姜堰市| 昆明市| 板桥市| 潜山县| 东台市| 丰都县| 河北省| 乌鲁木齐县| 建阳市| 驻马店市|