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

哪个网站做高中的题好网上书店网站建设目标

哪个网站做高中的题好,网上书店网站建设目标,后台管理网站建设,杭州做网站哪里好迭代器的简单使用 在遍历容器时#xff0c;我们可以使用for循环或者是增强for循环#xff0c;但是不同的集合结构在遍历时#xff0c;我们要针对集合特点采取不同的方式#xff0c;比如List是链表#xff0c;我们可以直接当做数组处理#xff0c;但Map是Key—Value的形式…迭代器的简单使用   在遍历容器时我们可以使用for循环或者是增强for循环但是不同的集合结构在遍历时我们要针对集合特点采取不同的方式比如List是链表我们可以直接当做数组处理但Map是Key—Value的形式我们只有获取了键名才能去遍历集合内容。   很麻烦对吧   还好JDK为我们提供了一个接口-------Iterator(迭代器)迭代器为各种容器提供了公共的操作接口。这样使得对容器的遍历操作与其具体的底层实现相隔离达到解耦的效果。   查看Iterator的API我们得知该接口共有3个方法          查看API发现Collection实现了该接口,也就是说Collection的所有子实现类可使用Iterator的方法,同时在Collection中定义了一个方法iterator()     使用该方法iterator()要求容器返回一个Iterator对象。第一次调用Iterator的next()方法时它返回序列的第一个元素。注意iterator()方法是java.lang.Iterable接口,被Collection继承。   那我们如何使用迭代器呢   示例代码如下关键代码的解释说明已经在注释部分给出将不再做赘述。   示例代码 1 /**2 3 * VX:java8733 获取更多资源4 5 */6 7 public class TestIterator {8 9 10 11 public static void main(String[] args) { 12 13 ListString list new ArrayList(); 14 15 list.add(and); 16 17 list.add(try); 18 19 list.add(your); 20 21 list.add(best); 22 23 24 25 //使用迭代器,对集合Arraylist中的元素进行取出 26 27 //调用集合的方法iterator() 获取Iterator接口的实现类对象() 28 29 IteratorString itlist.iterator(); 30 31 System.out.println(list.iterator().getClass());//打印的内容是 class java.util.ArrayList$Itr 既是我们的接口的实现类对象 32 33 //接口实现类对象,调用方法hasNext()判断集合中是否有元素 34 35 boolean b it.hasNext(); 36 37 System.out.println(b); 38 39 //接口的实现类对象,调用方法next()取出集合中的元素 40 41 String s it.next(); 42 43 System.out.println(it.next()s); 44 45 while(it.hasNext()){ 46 47 /* 48 49 * 这里将不会输出and,因为我们调用一次hasNext,内部的指针就会指向下一个元素 50 51 */ 52 53 System.out.println(it.next()); 54 55 } 56 57 58 59 } 60 61 62 63 } 64 65   会遇到的问题(并发修改异常)    我们来设想如下的场景: 在list集合迭代元素中对元素进行判断一旦条件满足就添加一个新元素。代码如下 1 /**2 3 * VX:java8733 获取更多资源4 5 */6 7 8 9 ListString list2 new ArrayListString(); 10 11 list2.add(abc); 12 13 list2.add(def); 14 15 list2.add(g); 16 17 18 19 IteratorString itlist2.iterator(); 20 21 while(it.hasNext()){ 22 23 String strit.next(); 24 25 if(g.equals(str)){ 26 27 //该操作会导致程序异常: ConcurrentModificationException 28 29 List2.add(b); 30 31 } 32 33 } 34 35 System.out.println(list2);     这是为什么呢?我们会发现当我们使用迭代器遍历元素的时候 使用了集合方法修改了集合的长度,这是不允许的。程序抛出异常ConcurrentModificationException,这个异常指的是当方法检测到对象的并发修改但不允许这种修改时就会抛出此异常。       迭代器是依赖于集合而存在的在判断成功后集合的中新添加了元素而迭代器却不知道所以就报错了这个错叫并发修改异常。   那我们应该如何解决呢?   首先在迭代时尽量不要使用集合的方法操作元素。如果要在迭代时对元素操作。我们可以通过ListIterator迭代器来操作元素。   将上面的代码做如下的修改:     1 /**2 3 * VX:java8733 获取更多资源4 5 */6 7 8 9 ListIteratorString itlist2.listIterator(); 10 11 while(it.hasNext()){ 12 13 String strit.next(); 14 15 if(a.equals(str)){ 16 17 //子接口ListIterator包含add()方法 18 19 it.add(b); 20 21 } 22 23 }     转载于:https://www.cnblogs.com/lotus-wmm/p/8318129.html
http://www.pierceye.com/news/424829/

相关文章:

  • 滨海做网站公司网页设计模板 中文
  • 辽源市网站建设怎么学做电商
  • 做pc端网站行情网站标签化
  • 中国做的很好的食品网站php图片网站源码
  • 做自媒体小视屏哪个网站好邹平网站建设公司
  • 字体样式 网站layui 网站建设模板
  • 沈阳网站设计江苏城乡建设部网站首页
  • 网站手机端生成wordpress如何下载
  • 网站数据抓取怎么做营销型网站开发定制
  • 福州营销型网站建设中国建设工程信息网站
  • 怎么在服务器里面做网站公司网站模板怎么做
  • 网站建设制作设计营销公司杭州石家庄网络公司哪家好
  • 重庆网站制作特点优势互联免费主机
  • 义乌网站制作多少钱wordpress有访客记录
  • 网站改版建议策划书百度搜索名字排名优化
  • 做药的常用网站wordpress加载js代码
  • 网站备案 通知杭州企业展厅设计公司
  • 简单个人网站开发代码广州白云区建设局网站
  • 网站空间控制面板软件做网站设计前景怎么样
  • 交流平台网站怎么做不了在家做网站编辑
  • 网站管理员登陆不了免费网页上传网站
  • 关于网站建设的英文歌外网设计素材网站
  • 中山比好的做网站的公司扫二维码直接进网站怎么做
  • 上海互联网网站建设东莞系统网站建设
  • 系部网站建设创新点外贸平台网站的营销方式
  • 做网站不给源代码吉林省招标网官方网站
  • 设计公司网站需要什么条件韩国能否出线
  • 做网站每个月可以赚多少钱公司注册网上怎么申请核名
  • 网站做防伪查询代码高校网站建设意义
  • 网站建设个人年终总结电子商务网站开发主要有哪些