collection中用迭代器和foreach循环遍历

迭代器

迭代器(对集合进行遍历)
/*boolean hasNext()
如果迭代具有更多元素,则返回 true 。
E next()
返回迭代中的下一个元素。
Iterator是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊
Collection接口中有个方法,叫Iterator(),这个方法返回的就是迭代器的实现类对象
Iteratoriterator()返回在此collection的元素上进行迭代的迭代器。
使用迭代器的步骤

1.使用集合中的iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用hasnext()
3.使用next()*/
代码:

public class Demo02CollectionIterator {
public static void main(String[] args) {Collection<String> coll=new ArrayList<>();coll.add("迪丽热巴1");coll.add("迪丽冷巴2");coll.add("迪丽雪巴3");coll.add("迪丽晴巴4");coll.add("迪丽雨巴5");coll.add("迪丽雷巴6");//多态接口类型跟随collection的类型。Iterator<String> it = coll.iterator();boolean b=it.hasNext();System.out.println(b);//trueSystem.out.println(it.next());//迪丽热巴1/*for (int i = 0; i < coll.size(); i++) {System.out.println(it.next());}*//*迪丽冷巴2迪丽雪巴3迪丽晴巴4迪丽雨巴5迪丽雷巴6Exception in thread "main" java.util.NoSuchElementExceptionat java.util.ArrayList$Itr.next(ArrayList.java:862)at cn.itcast.Collection.Demo02CollectionIterator.main(Demo02CollectionIterator.java:37)*///符合预期的错误,上面已经next一遍了。//改进用whilewhile (it.hasNext()){System.out.println(it.next());//it.next()相当于内存中存放的堆,先进先出。指针后移。}/*迪丽冷巴2迪丽雪巴3迪丽晴巴4迪丽雨巴5迪丽雷巴6*/System.out.println(it.hasNext());//false
}
}

foreach

增强for循环,底层也是迭代器,使用for循环的格式,简化了迭代器的书写
collectionextends iterable:所有的单例集合都可以使用增强for
public interface iterable实现这个接口允许对象成为foreach语句的目标
格式
for(集合/数组 变量名:集合名/数组名)
{
sout(变量名)
}
代码:

public class Demo03Foreach {
public static void main(String[] args) {demo01();demo02();
}private static void demo02() {ArrayList<String> list=new ArrayList<>();list.add("迪丽热巴1");list.add("迪丽热巴2");list.add("迪丽热巴3");list.add("迪丽热巴4");list.add("迪丽热巴5");list.add("迪丽热巴6");list.add("迪丽热巴7");list.add("迪丽热巴8");list.add("迪丽热巴9");list.add("迪丽热巴10");for (String l:list) {System.out.println(l);}
}private static void demo01() {int array[]={1,2,3,4,5,6,7,8,9,10};for (int a:array) {System.out.println(a);}
}}

显示效果:

1
2
3
4
5
6
7
8
9
10
迪丽热巴1
迪丽热巴2
迪丽热巴3
迪丽热巴4
迪丽热巴5
迪丽热巴6
迪丽热巴7
迪丽热巴8
迪丽热巴9
迪丽热巴10

collection与foreach相关推荐

  1. java for循环迭代_JAVA中的for-each循环与迭代

    在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable接口(位于java.lang包中),实现这个接口允许对象成为 "fo ...

  2. Effective C# 原则11:选择foreach循环

    Effective C# 原则11:选择foreach循环 Item 11: Prefer foreach Loops C#的foreach语句是从do,while,或者for循环语句变化而来的,它相 ...

  3. java8foreach_Java forEach – Java 8 forEach

    java8foreach Java forEach method was introduced in Iterable interface in Java 8. Java 8 forEach meth ...

  4. Mysql:<foreach> </foreach>

    Mysql:<foreach> </foreach> foreach元素的属性主要有item,index,collection,open,separator,close. it ...

  5. mybatis使用foreach遍历list集合或者array数组方式

    向sql传递数组或List,mybatis使用foreach解析:foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合:foreach元素的属性主要有item,index,co ...

  6. java8 循环map_Java8遍历Map的三种方式——for/stream/forEach

    最近写在基于Spring WebFlux项目遇到一个需求,希望将请求中的cookie/headers/params等信息获取,而获取后的数据结构都是MultiValueMap的数据结构,实质上可以看做 ...

  7. WPF:Documents文档--Annomation批注(3)

    AnnotationStyling批注样式 1.实现效果 可以选择不同便笺样式,对所有批注应用样式 选择文本后实现对批注的文本.墨迹便笺创建.删除 对选择文本的部分创建高亮不同颜色的批注,及实现清除命 ...

  8. 使用LINQ更新集合中的所有对象

    有没有办法使用LINQ执行以下操作? foreach (var c in collection) {c.PropertyToSet = value; } 为了澄清,我想遍历集合中的每个对象,然后更新每 ...

  9. mongocollection java_mongodb与java的整合

    mongodb的相关命令我们这里不在赘述,因为其文档下写的非常清楚,也很容易懂.这里我们说一下其余java的整合,mongodb配置请查看官方文档 1.首先我们应该导入期相关依赖, org.mongo ...

最新文章

  1. RabbitMQ 中 7 种消息队列
  2. python动态规划图解_动态规划案例之python实现(一)
  3. 爆牙齿的世界杯日记(小组末轮AB组)
  4. java优先队列_Java高级特性增强-多线程
  5. 【Spark Summit EU 2016】沃森媒体分析系统:从单租户Hadoop到3000租户Spark的架构演进...
  6. 微信小程序在线客服系统都有哪些功能?
  7. unknown host www.baidu.com 解决方法
  8. 读写分离设计:复制延迟?其实是你用错了
  9. 如何使用Movavi Slideshow Maker进行幻灯片制作?
  10. Python基础之赋值运算符
  11. 如何提高Android代码的安全性
  12. 百度人脸识别技术应用004---利用百度云离线SDK例子程序百度在线人脸库人脸识别接口_实现在线人脸识别
  13. 《基于机器视觉的高压输电线路覆冰厚度检测》论文笔记
  14. 读后感系列3:《人类简史》尤瓦尔·赫拉利(一)
  15. 怎么查看linux系统防火墙,如何查看linux系统中防火墙的状态
  16. 百度Java出现:“现在学java的都是傻子”相关搜索!
  17. 《Java程序设计》实验指导——项目3 类与对象
  18. MySQL5.7修改root账户密码
  19. java iText 的jar导出pdf格式,禁止浏览器预览,直接下载功能
  20. 【Java程序设计】GUI程序设计(设计封装矩形类、利用监听事件对textField进行读取和输入)

热门文章

  1. 关于AES:加密方式,让你的APK无懈可击(1),死磕原理
  2. win32汇编琢石成器第三章笔记
  3. 【北邮国院大二下】产品开发与营销知识点整理 Topic11
  4. 计算机组成原理——乘法运算(一位乘)
  5. Android 10 终于来了!增加了不少新特性
  6. python 通达信自动下载收盘和财务数据
  7. 暴力枚举题:平面上的点与外心
  8. 世界上第一台计算机采用哪位科学家,计算机基础知识试题及答案解析
  9. 【Java基础】面向对象(三)
  10. 【解答】多台西门子PLC之间可不可以无线通讯