您的位置:首页 > 编程语言 > Java开发

java中两个for循环的区别

2015-09-16 11:31 609 查看
java中一直在用for循环,但一直没弄清两个for循环的区别,今天看到个小列子,才恍然大悟

public class Test {

public static void main(String[] args) {

Random random=new Random(47);

String[] strArray=new String[random.nextInt(20)];

for(String s:strArray){

s="5555";

}

System.out.println("第一个for循环的结果是:"+Arrays.toString(strArray));

for(int n=0;n<strArray.length;n++){

strArray
="5555";

}

System.out.println("第二个for循环的结果是:"+Arrays.toString(strArray));

}

}

输出结果是:

第一个for循环的结果是:[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

第二个for循环的结果是:[5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555]

总结:

a> for(String s:strArray){...}这种for循环是直接取数组中的值,而不是取数组中的引用地址,通过引用地址在获取到值,输出集合中的东西时,效率应该较高,缺点是不能给集合赋值

b> for(int n=0;n<strArray.length;n++){...} ,输出集合中的内容时,效率较低,但可给集合赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: