当前位置:编程学习 > JAVA >>

这是神马诡异的Java语法?



for (String str : list) {   // 太诡异鸟:( 除了list,还有其他神马结构可以这么搞?
    system.out.print(str)
}

--------------------编程问答-------------------- 所有实现Iterable接口的类型 --------------------编程问答-------------------- 只要是集合都可以,相当于每次用一个string对象来接受list集合中的一个元素进行迭代 --------------------编程问答-------------------- 数组 集合都可以用
很方便的 --------------------编程问答-------------------- 这不是for each么 --------------------编程问答-------------------- 楼主买本书好好看看吧 常用集合类里的内容 我也在学习中 --------------------编程问答-------------------- 这个就是相当于把集合中的数据遍历到str文件中,List,Map,Set,数组 都可以。

其实就相当于
 Iterator<String> it = list.iterator();

 while(it.hasNext())
 {
System.out.println(it.next());
 }

--------------------编程问答-------------------- 这是增强的for循环,是j2se 1.5的api之后新增的功能,和三个分号的功能一样,差别就是不能计数,但是要比那个简洁。。。具体哪些结构可以用,只要是那种结构的可以写成
for(...;...;...;)
形式的,并且不用计数的都可以改成
for(:)
--------------------编程问答-------------------- foreach循环,多看看书》

地址:http://zjkilly.iteye.com/blog/509049

--------------------编程问答--------------------
引用 1 楼 xodbc 的回复:
所有实现Iterable接口的类型

+1 --------------------编程问答-------------------- 这不是新式for循环么。。 --------------------编程问答--------------------
引用 1 楼 xodbc 的回复:
所有实现Iterable接口的类型


和所有的数组。 --------------------编程问答-------------------- 呵呵
lz问的口气太搞笑了
--------------------编程问答-------------------- 这不是foreach吗。。c:foreach也是很常用的迭代标签 --------------------编程问答--------------------
引用 楼主 myy101 的回复:
Java code?123for (String str : list) {   // 太诡异鸟:( 除了list,还有其他神马结构可以这么搞?    system.out.print(str)}


这就是传说中的for-each --------------------编程问答-------------------- 语法:for(VariableModifiers type 变量名:集合变量名){……}
 
注意事项:type前可加修饰符,如加final,以方便内部类访问等;迭代变量必须在()中定义;集合变量名可以是数组或事项了Iterable接口的集合类
--------------------编程问答-------------------- jdk1.5新增的~ --------------------编程问答-------------------- foreach循环 --------------------编程问答-------------------- 这个不诡异 你学校的书里没有吧 java新版本的功能 迭代功能数组容器什么的都行的啊 --------------------编程问答-------------------- 这不就是for的增强版  for  each 么.很方便的额. --------------------编程问答--------------------
引用 12 楼 yongger520 的回复:
呵呵
lz问的口气太搞笑了

+ --------------------编程问答-------------------- 标题党?还是大菜 --------------------编程问答-------------------- 这个?
  很神奇么。。。。 --------------------编程问答--------------------
引用 1 楼 xodbc 的回复:
所有实现Iterable接口的类型

+1
手册上说的很清楚 --------------------编程问答--------------------
引用 18 楼 zqfddqr 的回复:
这个不诡异 你学校的书里没有吧 java新版本的功能 迭代功能数组容器什么的都行的啊

这个 学校的书也有  到处都有吧!!楼主自己没有看! --------------------编程问答--------------------   --------------------编程问答-------------------- 1.5中引入的for each语法,集合,数组都可用,就是比较方便,底层还是一样的 --------------------编程问答-------------------- 把jdk的源码全看懂,就没啥诡异了  --------------------编程问答--------------------
java1.5以后的新东西 --------------------编程问答-------------------- --------------------编程问答-------------------- 好吧,其实我会说c#也有,甚至连js都有这种用法吗 --------------------编程问答-------------------- 是不是等lambanda表达式出来,楼主更新奇啊 --------------------编程问答-------------------- 加强的for循环呀。 --------------------编程问答-------------------- 这是增强的for循环,只要list中对象的类型与“:”前面的类型相同就可以用。比如你上面的前面是String类型,list中的对象也要是String类型才行。 --------------------编程问答-------------------- for each,java里增加的···很方便的说··· --------------------编程问答-------------------- --------------------编程问答-------------------- 脑子让驴踢了吗 --------------------编程问答-------------------- 看了主楼我赶紧看时间,以为是看到了2003年的旧帖呢。 --------------------编程问答-------------------- 不建议用,会影响线程的东西。 --------------------编程问答-------------------- jdk1.5之后的功能,我印象里面好像java没有foreach,楼主可能从.net转的吧 --------------------编程问答--------------------
引用 38 楼 wjsq0705 的回复:
不建议用,会影响线程的东西。

求解释,为何会影响线程? --------------------编程问答-------------------- 额,这哪里诡异了 --------------------编程问答--------------------
引用 40 楼 zhangchao19890805 的回复:
引用 38 楼 wjsq0705 的回复:不建议用,会影响线程的东西。
求解释,为何会影响线程?
如果list不是线程安全的,另一个线程也来操作这个list,就会发生意想不到的事情。 --------------------编程问答-------------------- for-each 循环,用于集合类。语法糖吧。enhance human-readability --------------------编程问答-------------------- --------------------编程问答-------------------- 这尼玛的坑爹了........ --------------------编程问答-------------------- 诡异?for each而已  楼主好好看看java基础吧  顺便了解一下JDK的发展历程你就会知道了 --------------------编程问答--------------------
引用 42 楼 jiayouxjh 的回复:
引用 40 楼 zhangchao19890805 的回复:
引用 38 楼 wjsq0705 的回复:不建议用,会影响线程的东西。
求解释,为何会影响线程?如果list不是线程安全的,另一个线程也来操作这个list,就会发生意想不到的事情。

额。。这应该算程序员的问题吧。容器是否线程安全都在api中写明了 --------------------编程问答-------------------- 神马情况~~ --------------------编程问答-------------------- 楼主卖乖 --------------------编程问答-------------------- 这个就是for each语法 --------------------编程问答-------------------- for each 。数组集合都可以啦~ --------------------编程问答-------------------- 刚才试了一下,list必须指定泛型。否则会报错

import java.util.*;
public class Test05{
public static void main(String[] args){
List<String> l = new ArrayList<String>();//指定泛型的类型应该跟for里面str的类型有关
l.add("A");
l.add("B");
l.add("C");
for(String str : l){
System.out.println(str);
}
}
}

以前还真没用过,一直都是iterator --------------------编程问答-------------------- 数组、set、list 甚至是Map都可以这样用。集合必须用泛型
List<Pojo> list = new ArrayList<Pojo>();
list=dao.XXXX ...
for(Pojo p:list){
p.XXX ...
}
Pojo可以是任何的Object。好像是JDK 1.5及以上都可以能这么写。我一直在用1.6。

这是超级for循环。 我07年上学的时候就已经这样写了。很少使用iterator。 --------------------编程问答-------------------- 借鉴了C#的东东,C#里是:

            List<string> userNames = new List<string>();
            userName.Add("1111");
            userName.Add("2222");
            foreach (string name in userNames)
            {
                Console.WriteLine(name);
            }
--------------------编程问答-------------------- 感觉用这个特别顺 --------------------编程问答-------------------- 增强for循环,JDK1.5之后的新特性,可以简化代码的编写,没什么诡异的,当做语法记忆就可以了。 --------------------编程问答-------------------- 我还以为是神马诡异,等你工作了也就不足诡异了 --------------------编程问答-------------------- 1楼正解..
--------------------编程问答-------------------- 这不就是增强型的for循环么?有什么诡异的?楼主要黑我们? --------------------编程问答--------------------     我们老师刚讲过。就是遍历一下吧。 --------------------编程问答-------------------- 淡定.... --------------------编程问答-------------------- 加强FOR循环,可是实现,对集合,对象的遍历
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,