那原来的 int aa[]=new int[10]; for (int i = 0; i < aa.length; i++) { aa[i]=i; } 这样一个数组赋值,用foreach来写,要怎么写呢??
int aa[]=new int[10]; for (int a : aa) { a=i; }
foreach 没法访问定位,也就没办法修改,删除 集合中的内容
viena(维也纳N02) int aa[]=new int[10]; for (int a : aa) { a=i; } ---------------------------------------------- i是未定义的,程序不能编译过
foreach就只是做输出数组之用,对吗??
viena(维也纳N02) 你别误人子弟好么 你打印一下你那程序执行后的数组内容 别照猫画虎
楼主我再说一遍!!! foreach 没法访问定位,也就没办法修改,删除 集合中的内容
楼主如果你还不信你可以执行一下下面的程序 是根据viena(维也纳N02)所想表达的意思写的 public static void main(String[] args) { int aa[]=new int[10]; int i=0; for (int a : aa){ a=i; i++; } for(int b : aa){ System.out.println(b); } } 结果会告诉你一切
------------------------
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多个集合。所以,在我们编写代码时,还得看情况而使用它。
public static boolean check(Object...objects){
boolean result=false;
for(Object obj:objects){
if((((String)obj).trim().equals(""))
return result=true;
}
return result;
}
}
上面的程序是检查输入的n个参数是否是由空格组成
调用的时候可以输入多个参数
如:
boolean pd1=Check.check("string1");
boolean pd2=Check.check("string1","string2");
boolean pd3=Check.check("string1","string2","string3");
都可以
Object...objects中第一个Object表示行参类型 第2个是行参名 中间三个点是固定写法 大概是表示多个的意思吧 我猜的 HOHO~ ^_^
int aa[]=new int[10];
for (int i = 0; i < aa.length; i++)
{
aa[i]=i;
}
这样一个数组赋值,用foreach来写,要怎么写呢??
for (int a : aa)
{
a=i;
}
for (int a : aa)
{
a=i;
}
----------------------------------------------
i是未定义的,程序不能编译过
foreach 没法访问定位,也就没办法修改,删除 集合中的内容
public static void main(String[] args) {
int aa[]=new int[10];
int i=0;
for (int a : aa){
a=i;
i++;
}
for(int b : aa){
System.out.println(b);
}
}
结果会告诉你一切