日期:2014-05-20  浏览次数:20787 次

看JAVA学习笔记遇到的问题
import   java.util.*;
public   class   TreeMapDemo  
{
public   static   void   main(String[]   args)  
{
Map   map   =   new   TreeMap();

map.put( "justin ", "justin的信息 ");
map.put( "momor ", "momor的信息 ");
map.put( "jarry ", "jarry的信息 ");

for   (Object   name   :   map.values())
{
System.out.println(name);
}
}
}


for   (Object   name   :   map.values())这行有点不太明白
请高手指教



------解决方案--------------------
for (Object name : map.values())
{
System.out.println(name);
}

foreach(object name in map.values())在c#到见过,java里没见过这么用for的
是不是伪代码?


------解决方案--------------------
这是JAVA1.5 增强的for 循环

增强的for 循环(enhanced for loop)
所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator
遍历容器”的逻辑交给编译器来处理。例如下列代码:
void cancelAll(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
TimerTask tt = (TimerTask) i.next();
tt.cancel();
}
}
可以用增强的for 循环改写为:
void cancelAll(Collection c) {
for (Object o : c)
((TimerTask)o).close();
}
编译器判断对象c 是一个Collection 子对象(即是容器)之后,就会允许使用增强的for 循环
形式,并自动取到c 的迭代器,自动遍历c 中的每个元素。
可以看到,上面的代码中仍然有一个强制类型转换(((TimerTask)o).close();)。实际上,这
项特性应该普遍地与泛型结合,以获得最大的利益。结合泛型之后,上述代码变成:
void cancelAll(Collection <TimerTask> c) {
for (TimerTask task : c)
task.cancel();
}

------解决方案--------------------
再给你举个例:
int i[]={0,1,2,5,7,11};
for(int j:i) System.out.println(j+ " ");
意思为输入j,而j取i[]中的所有值,所以输出了0 1 2 5 7 11
------解决方案--------------------
不是伪代码!这是5.0以后新增的一个foreach方法也叫增强的for循环!
public static void read(int[] i){
for(int j : i){ //这是5.0以后新增加的foreach方法!跟下面的方法作用一样!
System.out.println(i);
}
for(int j ; j> i.length() ; j++) //这是1.4以前我们读取数组中每一个元素的方法!
{
System.out.println(i[j]);
}
}
我现在是在网吧没有eclipse所以格式和方法名也许有写的不是很准确的地方还请你见谅!如果想更多的了解的话可以去翻一下在线的String 和 Arrays的API文档!
------解决方案--------------------
jdk1.5的新内容!!
------解决方案--------------------
hibernate里到处都是
------解决方案--------------------
学习了,顶一下