Java学习笔记36:迭代器遍历(for 、while)

while循环遍历

Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
Iterator it = coll.iterator();
while(it.hasNext()){
    System.out.println(it.next());

}
for循环遍历

Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
for(Iterator it = coll.iterator(); it.hasNext(); ){
    System.out.println(it.next());

}
注意:开发中建议使用for循环实现迭代,因为while循环中,it是在while循环体外创建的,因此while循环结束后,it仍然在内存中占据着一定的空间。而使用for循环,在循环结束后,it的生命周期也会随之结束。

Student S语句向下转型,因为Obj无法获取子类 在这里插入图片描述

java的迭代器的使用方法
参考:https://blog.csdn.net/weixin_41547486/article/details/79594413

Java:使用Iterator迭代器遍历集合数据
https://blog.csdn.net/xuehyunyu/article/details/77461390

迭代器(Iterator)遍历的两种方法(for和while)
https://blog.csdn.net/jamie_byr/article/details/79781432

-----------------------java的迭代器-----------------------------------

集合的遍历:

遍历方法:
Iterator iterator()
返回在此 collection 的元素上进行迭代的迭代器。

在这里插入图片描述

java.util
接口 Iterator
所有已知子接口:

ListIterator, XMLEventReader

所有已知实现类:

BeanContextSupport.BCSIterator, EventReaderDelegate, Scanner

public interface Iterator
对 collection 进行迭代的迭代器。迭代器取代了 JavaCollections Framework 中的 Enumeration。迭代器与枚举有两点不同:

迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
方法名称得到了改进。
此接口是 JavaCollections Framework 的成员。

方法摘要

boolean

hasNext()
如果仍有元素可以迭代,则返回 true。

E

next()
返回迭代的下一个元素。

void

remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。

例子:

publicclassCollectionTest5 {

publicstaticvoidmain(String[] args) {

  //创建一个集合

  Collection coll = new ArrayList();

  for (inti = 0; i < 10; i++) {

    coll.add("张三" + i);

  }

 

  //创建集合的迭代器,这个迭代器只能给Coll这个集合来使用

  Iterator iter = coll.iterator();

  while(iter.hasNext()){

    //Object obj= iter.next();

    //shift + Alt+ R 可以一起修改同名的变量

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

    System.out.println(str);

  }

  //迭代器只能使用一次,再次使用false

// boolean isHasNext = iter.hasNext();

// System.out.println(isHasNext);

// iter.next();

  //如果要再遍历一次集合,需要再次创建一个迭代器

  Iterator iter1 = coll.iterator();

  while(iter1.hasNext()){

    //Object obj= iter.next();

    //shift + Alt+ R 可以一起修改同名的变量

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


     //迭代器在遍历的时候,这个集合不能做任何操作

     //if("张三3".equals(str))

       //coll.add("李四");

    System.out.println(str);

  }

}

}

结果:

张三0

张三1

张三2

张三3

张三4

张三5

张三6

张三7

张三8

张三9

张三0

张三1

张三2

张三3

张三4

张三5

张三6

张三7

张三8

张三9

猜你喜欢

转载自blog.csdn.net/qq_30242987/article/details/85883598
今日推荐