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

网站中的给我留言怎么做/百度推广怎么提高关键词排名

网站中的给我留言怎么做,百度推广怎么提高关键词排名,北京人才招聘网站,推广软件工具一、Iterator的好处--面向接口编程更广泛的使用范围。Iterator迭代器针对Collection设计,但get(int index)、remove(int index)等一类的方法并不是Collection接口的标准,也就是说,对ArrayList,即List的实现,你能使用这…

一、Iterator的好处--面向接口编程

更广泛的使用范围。

Iterator迭代器针对Collection设计,但get(int index)、remove(int index)等一类的方法并不是Collection接口的标准,也就是说,对ArrayList,即List的实现,你能使用这些方法,但对于Collection的其他实现,如Set等,你可能就必须使用Iterator了。

更好的异常控制。

Iterator迭代器允许调用者在在迭代期间对迭代器所指向的Collection进行remove等操作,而对于这种情况,一般的for(int i = 0; i < Collection.size(); i++)遍历方式可能就会出现IndexOutOfBoundsException。

更佳的性能。

对于数组形式的Collection,例如问题中的ArrayList,两种遍历方式可认为性能几乎一致;但对于链表形式的Collection,例如同样是List实现的LinkedList,一般的for(int i = 0; i < Collection.size(); i++)遍历方式可能是噩梦,因为在for loop的内部,执行get(int index)、remove(int index)等一类的方法时需要再次进行部分遍历。即Iterator会从一个节点直接通过next指针获得下一个节点,遍历时间复杂度始终是O(n),而一般的for loop的时间复杂度在链表的情况下会上升至O(n^2),n很大时,性能消耗非常恐怖。

另外补充两点:

对于for循环,我们还有一种叫做所谓for each的写法,C#中就是for each,Java中是for(Object o : Collection os),这种写法不仅仅是个语法糖,使代码更漂亮、更简洁,更重要的是,for each实际上就是使用的迭代器,因此,code时始终使用foreach代替一般的for loop就对了!

//以三种方式遍历集合List

List list = new ArrayList();

list.add("a");

list.add("b");

list.add("c");

System.out.println("----------方式1-----------");

//第一种方式,普通for循环

for(int i = 0; i < list.size(); i++)

{

System.out.println(list.get(i));

}

System.out.println("----------方式2-----------");

//第二种方式,使用迭代器

for(Iterator iter = list.iterator(); iter.hasNext();)

{

System.out.println(iter.next());

}

System.out.println("----------方式3-----------");

//第三种方式,使用增强型的for循环

for(String str: list)

{

System.out.println(str);

}

For-Each循环是JDK5.0的新特性(其他新特性比如泛型、自动装箱等)。当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用For-Each循环,因为它丢失了下标信息。

code时,遵循够用原则,参数传递等尽量面向接口,而不是具体的实现类,这有利于代码的兼容以及后续升级。例如方法:

function(ArrayList os);

如果在function中用不到os的ArrayList独有的特性,List已经够用,则写成下面的形式更好,这样调用者就更轻松了,他可以提供ArrayList之外的数据类型,如LinkedList:

function(List os);

同理,再进一步,甚至可以写成如下形式:

function(Collection os);

二、例子

import java.util.*;

public class Muster {

public static void main(String[] args) {

ArrayList list = new ArrayList();

list.add("a");

list.add("b");

list.add("c");

Iterator it = list.iterator();

while(it.hasNext()){

String str = (String) it.next();

System.out.println(str);

}

}

}

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

http://www.lbrq.cn/news/1430209.html

相关文章:

  • 学网站建设学校/网站服务器多少钱一年
  • 南通北京网站建设/最近的国内新闻
  • 网站建设合同注意事项/十大网络营销成功案例
  • 建设网站观澜/网站的网站建设
  • 婚庆网站制作公司/网络广告案例
  • 做网站的调研报告/个人网站推广方法
  • 静态网站添加到织梦/营销方式都有哪些
  • 新乡网站建设.com/佛山seo优化外包
  • 网站开发师培训/什么是网络营销战略
  • 外贸视频网站开发/口碑营销ppt
  • 公益广告设计图片/aso关键字优化
  • 奥鹏作业代做靠谱的网站/湘潭网站设计外包公司
  • 橙云的主机支持放两个网站吗/推广宣传方式有哪些
  • 政府网站内容建设咨询/官网百度
  • 如何建设网站方便后期维护/seo运营做什么
  • wordpress的语言/seo门户网站
  • 衡水网站建设套餐/常州百度推广代理
  • 网站运营内容建设方案/广告联盟平台自动赚钱
  • oss做网站迁移/游戏推广引流软件
  • git怎么做隐私政策网站/软文发稿系统
  • 有没有房建设计的网站/需要优化的网站有哪些
  • 广东省党的建设研究会网站/百度网站收录提交入口全攻略
  • 丰联汽配网站建设成本/哪里做网络推广好
  • 有什么好的互联网平台做网站/网站域名备案查询
  • 旅游公司网站难做吗/免费的网站软件
  • 怎么在后台设置网站的关键词/广州网站关键词推广
  • 安徽省建设厅证书查询官方网站/网络营销个人总结
  • 沈阳网站制作的公司/seo培训价格
  • 请seo的人帮做网站排名/浙江seo外包费用
  • 挂机宝如何做网站/长春网站优化
  • es7.x中分片和节点关系以及查看节点数
  • 高通vendor app访问文件
  • 在Ubuntu 22.04上安装远程桌面服务
  • TypeScript 中,! 是 非空断言操作符
  • NineData云原生智能数据管理平台新功能发布|2025年7月版
  • LeetCode215~ 234题解