当前位置: 首页 > news >正文

罗湖企业网站建设网站建设header

罗湖企业网站建设,网站建设header,网站有死链怎么处理,如何能把网站做的更大Iterator public interface Iterator<E> {} terator是一个接口&#xff0c;它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下&#xff1a; forEachRemaining(Consumer<? super E> action)&#xff1a;为每个剩余元素执行给…

Iterator

public interface Iterator<E> {}

terator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下:

forEachRemaining(Consumer<? super E> action):为每个剩余元素执行给定的操作,直到所有的元素都已经被处理或行动将抛出一个异常

hasNext():如果迭代器中还有元素,则返回true。

next():返回迭代器中的下一个元素

remove():删除迭代器新返回的元素。

例子:

import java.util.*;
public class TestIterator {public static void main(String[] args) {ArrayList<String> a = new ArrayList<String>();a.add("aaa");a.add("bbb");a.add("ccc");System.out.println("Before iterate : " + a);Iterator<String> it = a.iterator();while (it.hasNext()) {String t = it.next();if ("bbb".equals(t)) {it.remove();}}System.out.println("After iterate : " + a);}
}

注意:

(1)Iterator只能单向移动。

(2)Iterator.remove()是唯一安全的方式来在迭代过程中修改集合;如果在迭代过程中以任何其它的方式修改了基本集合将会产生未知的行为。而且每调用一次next()方法,remove()方法只能被调用一次,如果违反这个规则将抛出一个异常。

ListIterator

Interface ListIterator<E>{}

 

包含的方法有:

(1)双向移动(向前/向后遍历).

(2)产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引.

(3)可以使用set()方法替换它访问过的最后一个元素.

Iterator和ListIterator区别
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面:

(1)ListIterator有add()方法,可以向List中添加对象,而Iterator不能


(2)ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。


(3)ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。


(4)都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。

因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。其实,数组对象也可以用迭代器来实现。

Iterable

or each原理

其实for each循环内部也是依赖于Iterator迭代器,只不过Java提供的语法糖,Java编译器会将其转化为Iterator迭代器方式遍历。我们对以下for each循环进行反编译:

 for (Integer i : list) {System.out.println(i);}

反编译后:

Integer i;
for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(i)){i = (Integer)iterator.next();        }

有一个问题,为什么不直接将hasNext(),next()方法放在Iterable接口中,其他类直接实现就可以了?

原因是有些集合类可能不止一种遍历方式,实现了Iterable的类可以再实现多个Iterator内部类,例如LinkedList中的ListItrDescendingIterator两个内部类,就分别实现了双向遍历和逆序遍历。通过返回不同的Iterator实现不同的遍历方式,这样更加灵活。如果把两个接口合并,就没法返回不同的Iterator实现类了。

http://www.yayakq.cn/news/162707/

相关文章:

  • 包装材料网站建设做一个公众号多少钱
  • 漯河网站建设哪家怎样建设淘宝网站
  • 湛江做网站软件开发的本质
  • 做网站客源中国河北建设银行官网招聘网站
  • 成都建设网站公司简介思明建设局网站
  • 建设部网站规范下载wordpress 评论翻页
  • 做商城网站要请程序员吗vi设计整套
  • 泰安营销网站建设免费ppt下载网
  • 乐陵网站服务在哪一条中华智能自建代理网站
  • 中国建设银行黄冈分行网站我的三次做网站的经历
  • 广西南宁网站设计做网站能改吗
  • 购物网站ppt怎么做广东建设工程交易中心网站
  • 网站一跳率滨州正规网站建设哪家专业
  • h5响应式集团网站推荐有了网址可以建网站吗
  • 营销型的网站企业网站备案填写要求
  • 今科网站建设费用北京广告设计公司排名
  • 对网站建设的建议网站标题和关键词一样
  • 建设积分兑换官方网站wordpress文章登录可见
  • 用户体验 网站站酷设计网站官
  • 网站诊断seo当前数据是指中国最大的网站建设
  • 佛山网站建设no.1岳阳网站岳阳建站
  • 海珠区pc端网站建设wordpress 修改用户头像
  • 起名网站怎么做做网站硬件工程是什么
  • 机械网站建设注意什么受和攻不停的做漫画网站
  • 软件外包上市公司随州网站seo多少钱
  • 在哪制作一个简单的网页乐陵seo网站
  • 西安有做网站的吗网络技术工程师是干嘛的
  • 北京网站搭建哪家好wordpress网站文章排版插件
  • 查询网站所有死链接wordpress获取当前页面链接地址
  • 祝贺公司网站上线万网封停慧聪张向东复仇