Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1449655
  • 博文数量: 254
  • 博客积分: 8696
  • 博客等级: 中将
  • 技术积分: 2961
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-03 16:46
文章分类

全部博文(254)

文章存档

2015年(4)

2014年(18)

2013年(16)

2012年(8)

2011年(25)

2010年(2)

2009年(74)

2008年(107)

分类:

2008-05-09 19:12:40

 
foreach
开放分类: 编程
foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下:
foreach (type identifier in expression) statement
其中:
type
identifier 的类型。
identifier
表示集合元素的迭代变量。如果迭代变量为值类型,则无法修改的只读变量也是有效的。
expression
对象集合或数组表达式。集合元素的类型必须可以转换为 identifier 类型。请不要使用计算为 null 的表达式。
而应计算为实现 IEnumerable 的类型或声明 GetEnumerator 方法的类型。在后一种情况中,GetEnumerator 应该要么返回实现 IEnumerator 的类型,要么声明 IEnumerator 中定义的所有方法。
statement
要执行的嵌入语句。 ()
 
 
foreach是C#里的关键字。
foreach 没法访问定位,也就没办法修改,删除 集合中的内容(从网上看到的,不清楚)
 
在JAVA里增强了for,和foreach具有同样功能
for (Object objectname : preArrayList(一个Object对象的列表))
 
以下内容来源于网络....
------------------------

package com.kuaff.jdk5;
 
import java.util.*;
import java.util.Collection;
 
 
public class Foreach
{
    private Collection c = null;
    private String[] belle = new String[4];
    public Foreach()
    {
        belle[0] = "西施";
        belle[1] = "王昭君";
        belle[2] = "貂禅";
        belle[3] = "杨贵妃";
        c = Arrays.asList(belle);
    }
    public void testCollection()
    {
        for (String b : c)
        {
              System.out.println("曾经的风化绝代:" + b);
        }
    }
    public void testArray()
    {
        for (String b : belle)
        {
              System.out.println("曾经的青史留名:" + b);
        }
    }
    public static void main(String[] args)
    {
        Foreach each = new Foreach();
        each.testCollection();
        each.testArray();
    }
}
 
对于集合类型和数组类型的,我们都可以通过foreach语法来访问它。上面的例子中,以前我们要依次访问数组,挺麻烦:
for (int i = 0; i < belle.length; i++)
{
        String b = belle[i];
        System.out.println("曾经的风化绝代:" + b);
}
 
现在只需下面简单的语句即可:
for (String b : belle)
{
       System.out.println("曾经的青史留名:" + b);
 }
 
对集合的访问效果更明显。以前我们访问集合的代码:
for (Iterator it = c.iterator(); it.hasNext();)
{
        String name = (String) it.next();
        System.out.println("曾经的风化绝代:" + name);
}
 
现在我们只需下面的语句:
for (String b : c)
{
        System.out.println("曾经的风化绝代:" + b);
}
 
 
Foreach也不是万能的,它也有以下的缺点:
在以前的代码中,我们可以通过Iterator执行remove操作。
for (Iterator it = c.iterator(); it.hasNext();)
{
       itremove()
}
 
但是,在现在的foreach版中,我们无法删除集合包含的对象。你也不能替换对象。
同时,你也不能并行的foreach多个集合。所以,在我们编写代码时,还得看情况而使用它
()
阅读(1009) | 评论(0) | 转发(0) |
0

上一篇:ArrayList数组

下一篇:solaris开启远程连接

给主人留下些什么吧!~~