foreach循环详解

在Java1.5+中,foreach循环非常实用.

 

 1 public class Demo <T> implements Iterable<T>, Iterator<T> {
 2     T[] array;
 3     int length;
 4     int index;
 5
 6     Demo(T[] param){
 7         array = param;
 8         length = array.length;
 9     }
10
11     public static void main(String[] args) {
12         Demo<String> demo = new Demo<String>(new String[]{"aaa","bbb"});
13         for(String str : demo){
14             System.out.println(str);
15         }
16     }
17
18     public Iterator<T> iterator(){
19         return this;
20     }
21
22     public void remove(){
23     }
24
25     public boolean hasNext(){
26         index = (index+1)%(length+1);
27         if(index==0)return false;
28         return true;
29     }
30
31     public T next(){
32         return array[index-1];
33     }
34 }
35
36 /*output:
37 aaa
38 bbb
39 */

点击+打开代码

上述代码等价于以下形式

1     public static void main() {
2         Demo<String> demo = new Demo<String>(new String[]{"aaa","bbb"});
3         Iterator<String> iterator = demo.iterator();
4         whlie(iterator.hasNext()){
5             String tmp = iterator.next();
6             System.out.println(tmp);
7         }
8     }

 

时间: 2024-11-18 12:14:48

foreach循环详解的相关文章

PHP中foreach循环详解

首先要说的是,其实我对foreach循环的用法并不是很精通,说详解,其实也只是我自己的理解,希望对你能有点帮助 . 先来看一下foreach的语法: foreach ($array as $key=>$value) { …… } 为了便于理解,我们假定这里的$array是一个一维的相关数组,$key是数组的索引,$value是这个索引的值,它们的名字可以随意,之所以叫$key和$value是为了便于理解.为了能让你更好的理解foreach的工作过程,我们来创建一个数组: $array = arr

MyBatis的foreach语句详解

MyBatis的foreach语句详解 MyBatis的foreach语句详解 1人收藏此文章, 我要收藏 发表于3个月前 , 已有113次阅读 共0个评论 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,se

MyBatis的Mapper文件的foreach标签详解

MyBatis的Mapper文件的foreach标签用来迭代用户传递过来的Lise或者Array,让后根据迭代来拼凑或者批量处理数据.如:使用foreach来拼接in子语句. 在学习MyBatis Mapper文件的foreach标签时我们先看看DTD是如何定义的?DTD代码如下: 1 2 3 4 5 6 7 8 9 10 <!-- 定义foreach元素 --> <!ELEMENT foreach (#PCDATA | include | trim | where | set | fo

js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素

 壹 ? 引 在JS开发工作中,遍历数组的操作可谓十分常见了,那么像for循环,forEach此类方法自然也不会陌生,我个人也觉得forEach不值得写一篇博客记录,直到我遇到了一个有趣的问题,我们来看一段代码: let arr = [1, 2]; arr.forEach((item, index) => { arr.splice(index, 1); console.log(1); //输出几次? }); console.log(arr) //? 请问,这段代码执行完毕后arr输出为多少?循环

Javascript学习之 for 循环详解

Javascript是前端开发中常用的技术,今天和大家分享的就是javascript中的for循环相关知识及用法,希望通过本文的分享,对大家学习javascript 有所帮助. 在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: · 简单for循环 · for-in · forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循环,是: · for-of 下面我们就来看看这 4 种 for 循环. 简单 for 循环 下面先来看看大家最

C语言For循环详解--saying2

c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.for(表达式 1;表达式 2;表达式 3)语句它的执行过程如下:(1)先求表达式 1.(2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步 做若为 假(值为0),则结束循环,转到第5步.(3)求解表达式3(4)转回上面第(2)步骤继续执行;(5)结束循环,执行for语句下面的一个语句;for(循环

PL/SQL loop循环详解

在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LOOP语句的基本语法结构如下: 1 [<<label_name>>] 2 LOOP 3 statement... 4 END LOOP [label_name] 5 6 [语法说明] 7 <<label_name>>:LOOP结构的标签,是可选项. 8 LOOP:

MyBatis的foreach语句详解 list array map

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collectio

【Java基础】While循环详解

循环结构分两大类,一类是当型,一类是直到型. 当型: 当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,例如:while 与 for循环. 直到型: 先执行某语句,在判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,例如do - while循环. 语法结构: while (布尔表达式) { 循环体; } 例子: public class TestWhile { public static void main