迭代器、foreach循环、泛型集合

集合的迭代
  语法:Iterator<Object> it=集合.iterator();
     while(it.hasNext()){
      Object obj=it.next();
     }
    is.hasNext(); //判断是否有下一个元素
    it.next(); //移动指针,返回指针指向元素
    注意:集合在遍历的过程中不能进行修改,如果进行了修改操作,那么就会抛出ConcurrentModificationException异常,
       如果需要进行删除,使用迭代器的it.remove()方法

foreach循环

  语法:for(数组元素类型 数组的元素值 :数组){

        //循环体

     }

泛型集合

  使用泛型集合在创建集合对象是指定集合中元素的类型,在从集合中取出元素时无需进行类型强制转换,避免了ClassCastException异常

  Java中共有8个个包装类:Byte,Shout,Integer,Long,Float,Double,Boolean,Character

时间: 2024-08-06 15:59:56

迭代器、foreach循环、泛型集合的相关文章

JSTL自定义标签 实现forEach循环支持集合.数组

java代码实现 tld配置 JSP页面代码

集合框架-Foreach循环

 格式: for(元素类型  变量名 : Collection集合or数组) { 执行语句: } 传统for和foreach的区别? foreach循环必须有被遍历的目标,要么是Collection,要么是数组. package cn.itcast.p6.foreach;   import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator;   public class ForeachDemo {  

集合中的 for-Each循环

 数组的加强型的for-Each循环很简单,我们再来看一下集合中的for-Each 循环又是怎么样的.我们都知道集合中的遍历都是通过迭代(iterator)完成的.也许有人说,也可以按照下面的方式来遍历集合,不一定非要使用迭代: 1 List<String> list = new LinkedList<String>(); 2 list.add("a"); 3 list.add("b"); 4 list.add("c");

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变了元素的值 Console.WriteLine(x); } 如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现. 实际上,在.Net的底层(IL语言层面)而言, foreach (var

跟王老师学集合(四):使用foreach循环遍历元素

使用foreach循环遍历元素 主讲人:王少华  QQ群号:483773664 学习目标: 1.掌握使用foreach循环遍历元素 JDK1.5及以后的版本,可以通过foreach来迭代访问集合元素. 一.使用foreach来遍历狗狗集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class Test {     public static void main(String[] args) {         

多线程下的for循环和foreach循环 System.InvalidOperationException: 集合已修改;可能无法执行枚举

背景:当循环体在循环的时候有需求要修改自己.或者在多线程下,循环静态变量的时候,别人很容易修改了循环体内的数据.但是这就会报错的 准备:for:foeach:多线程. 解决方案:For循环是线程安全的,foreach是线程不安全的.说起开好像很高大上哈.意思是在循环内如,如果调用他们自己的循环体.前者是可以的,但是后者是不行的. 再者如果你循环的是字典.字典是键值对的形式,所以采用线程安全的字典ConcurrentDictionary的字典也可以一定程度的解决问题.但是做好的方案还是添加锁 1,

自定义集合支持使用 foreach循环访问该集合

自定义集合支持使用 foreach循环访问该集合,需要实现 IEnumerable 和 IEnumerator 接口. using System;using System.Collections;public class Person{   public Person(string fName, string lName)   {      this.firstName = fName;      this.lastName = lName;   }   public string firstN

C#在foreach循环中修改字典等集合出错的处理

C#在foreach循环中修改字典等集合出错:System.InvalidOperationException: Collection was modified; enumeration operation may not execute.这是因为在foreach中不允许修改集合,可通过如下方式修改dictPublish的值,如: Dictionary<string, string> _dict = new Dictionary<string, string>(dictPublis

自己写一个泛型集合类型,可实现添加和遍历

在"C#中List<T>是怎么存放元素的"中,分析了List<T>的源码,了解了List<T>是如何存放元素的.这次,就自定义一个泛型集合类型,可实现添加元素,并支持遍历. 该泛型集合类型一定需要一个添加元素的方法,在添加元素的时候需要考虑:当添加的元素超过当前数组的容量,就让数组扩容:为了支持循环遍历,该泛型集合类型必须提供一个迭代器(实现IEnumerator接口). public class MyList<T> { T[] item