结肠在Java中意味着什么?我有这个:
public static List<String> findAllAnagrams(List<String> words) {
List<String> result = new LinkedList<String>();
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;
}
答案 0 :(得分:12)
这意味着一件事,它是一个增强的循环。
for (String i: words)
与
相同for (int i = 0; i < words.length; i++) {
//
}
Joshua Bloch ,在他的值得阅读 Effective Java 的第46项中,说明如下:
在1.5版中引入的for-each循环通过完全隐藏迭代器或索引变量来消除混乱和错误的机会。由此产生的习语同样适用于集合和数组:
迭代集合和数组的首选习惯用法
for (Element e : elements) {
doSomething(e);
}
当您看到冒号(:)时,请将其读作“in”。 因此,上面的循环读作“对于元素中的每个元素e”。注意,即使对于数组,使用for-each循环也没有性能损失。实际上,在某些情况下,它可能比普通的for循环提供轻微的性能优势,因为它只计算一次数组索引的限制。虽然您可以手动执行此操作(第45项),但程序员并不总是这样做。
答案 1 :(得分:5)
(String i : words)
words
:将迭代器项和项指示为i
所以回答 - 它表示每个循环
答案 2 :(得分:2)
冒号是语法的一部分,冒号也出现在label
中答案 3 :(得分:0)
不要认为冒号(:)特别意味着什么。这就是Java设计者如何在改进的for循环中划分参数和表达式。
for ( FormalParameter : Expression ) Statement
检查语言规范:http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2
答案 4 :(得分:0)
这是每个循环。当你看到冒号(:)将它读作&#34;在&#34; 您可以在Oracle文档中找到非常好的解释,其中包含示例here