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

求教,for循环中的条件是什么意思
public static void creatMap(Map<String,Integer> map){

String[] tokens = input.split(" ");

for (String token: tokens){
String word = token.toLowerCase();
if(map.containsKey(word)){
int count = map.get(word);
map.put(word, count + 1);
}else{
map.put(word, 1);
}
}
};
有一段关于Map的函数,我看不懂for循环中的String token: tokens条件
请教高手给我解释一下

------解决方案--------------------
这是Foreach语法.
定义一个String型变量token, 每次从数组tokens里取一个元素付给变量token,一直到把tokens里的所有元素都处理完.
------解决方案--------------------
tokens是要迭代的集合,token是当前元素。实际上走的是tokens的iterator()方法。
------解决方案--------------------
会遍历tokens中所有元素
------解决方案--------------------
这个是增强型for循环.
------解决方案--------------------
for (String token: tokens)//等价于for(int i = 0; i < tokens.length(); i++)
其中token便是数组tokens中每一个元素
------解决方案--------------------
增强的for循环
tokens是你上面得到的数组名字,它放在增强的for循环的冒号后面,意思就是说要从tokens数组中拿取数据出来,然后从你的数拿出来的值都是string类型,所以前面就会看见String token.
String token:tokens的意思就是说从tokens中获取数据,赋值给String类型的变量token,然后在循环体内使用啊。
------解决方案--------------------
便利tokens中的集合,token是便利出来的结果,类似于for(int i = 0; i < tokens.length(); i++)

------解决方案--------------------
这是加强for循环功能等价于for(int i = 0; i < tokens.length(); i++){};
------解决方案--------------------
java的增强型for循环,相当于c#中的foreach就是循环遍历集合中的元素
------解决方案--------------------
这是增强型的for循环,java jdk 1.5的新特性,与普通的for(int i = 0; i < tokens.length(); i++)相同,
for (String token: tokens)这个循环中tokens是一个集合名,而token是遍历出来集合中的每一个元素