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

来自JDk的问题
//   Prints   a   frequency   table   of   the   words   on   the   command   line
public   class   Frequency   {
      public   static   void   main(String[]   args)   {
            Map <String,   Integer>   m   =   new   TreeMap <String,   Integer> ();
//上面的我不太明白,JAVA有这样的语法吗?不太常见   ,那是什么意思?
            for   (String   word   :   args)   {
//上面的冒号是什么意思?
                    Integer   freq   =   m.get(word);
                    m.put(word,   (freq   ==   null   ?   1   :   freq   +   1));
            }
            System.out.println(m);
      }
}


------解决方案--------------------
JDK 1.5之后加入的范型编程,也就是和C++的模板是一个效果

那个冒号没用过,看起来还有点像JScript
------解决方案--------------------
楼上的楼上正解。
刚刚看过《jdk5.0学习笔记》。
楼主去读书频道看一眼吧。
------解决方案--------------------
你说的是在5.0下的情况.
for(declaration:expression)
stsement
就是for/in循环.expression 必须是array或者实现java.lang.Iterable接口的对象,array类型或Iterable元素必须是分配兼容于在declaration中声明的变量类型.for/in的循环变量必须要声明在循环中.和基本的for循环比较,我个人觉得就是写的代码少了,比较方便,但是不能追踪里面的控制变量及相关的问题了.
至于Map在java文档中介绍的是很全的:-)
------解决方案--------------------
学习了,