结肠在Java中意味着什么?

结肠在Java中意味着什么? 我有这个:

public static List findAllAnagrams(List words) { List result = new LinkedList(); for(String i : words){ for (String j : words){ if (result.contains(i)) { break; } else if (i == j) { } else { if (areAnagrams(i,j)){ result.add(i); System.out.println(result); } } } } return result; } 

这意味着一件事,它是一个增强的循环。

 for (String i: words) 

意思是一样的

 for (int i = 0; i < words.length; i++) { // } 

约书亚布洛赫在他的值得阅读的有效Java的第46项中说,如下:

在1.5版中引入的for-each循环通过完全隐藏迭代器或索引变量来消除混乱和错误的机会。 由此产生的习语同样适用于集合和数组:

迭代集合和数组的首选习惯用法

 for (Element e : elements) { doSomething(e); } 

当您看到冒号(:)时,将其读作“in”。因此,上面的循环读作“对于元素中的每个元素e”。请注意,使用for-each循环没有性能损失,即使对于数组也是如此。 事实上,在某些情况下,它可能比普通的for循环提供轻微的性能优势,因为它只计算一次数组索引的限制。 虽然您可以手动执行此操作(第45项),但程序员并不总是这样做。

 (String i : words) 

对于words每个项目

:表示迭代器项目和项目为i

所以回答 – 它表示每个循环

每个循环的冒号是语法的一部分,冒号也带有标签

不要认为冒号(:)意味着什么特别。 这就是Java设计者如何在改进的for循环中划分参数表达式的方法

 for ( FormalParameter : Expression ) Statement 

检查语言规范: http : //docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2

它适用于每个循环。 当您看到冒号(:)将其读作“in”时您可以在Oracle文档中找到包含示例的非常好的解释