11

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;
}
4

5 に答える 5

12

これは、拡張された for ループであることを意味します。

for (String i: words) 

と同じ意味です

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

Joshua Blochは、彼の貴重な記事「 Effective Java 」の Item 46 で次のように述べています。

リリース 1.5 で導入された for-each ループは、イテレータまたはインデックス変数を完全に非表示にすることで、煩雑さとエラーの可能性を取り除きます。結果のイディオムは、コレクションと配列に等しく適用されます。

コレクションと配列を反復処理するための推奨イディオム

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

コロン (:) がある場合は、「in」と読みます。したがって、上記のループは「要素内の各要素 e に対して」と読みます。配列の場合でも、for-each ループを使用してもパフォーマンスが低下しないことに注意してください。実際、配列インデックスの制限を 1 回だけ計算するため、状況によっては、通常の for ループよりもわずかにパフォーマンスが向上する場合があります。これは手動で行うこともできますが (項目 45)、プログラマーが常にそうするとは限りません。

于 2013-01-17T08:20:40.427 に答える
5
(String i : words)

の各アイテムについてwords

:イテレータアイテムとアイテムを次のように示しますi

答えるために-それはfor-eachループを表します

于 2013-01-17T08:18:48.913 に答える
2

各ループのコロンは構文の一部であり、コロンもラベル付きで表示されます

于 2013-01-17T08:18:57.173 に答える
0

コロン(:)は特に何かを意味するとは思わないでください。これは、Java設計者が、内部のパラメーターを区切ることを考えた方法であり、forループが改善されました。

for ( FormalParameter : Expression ) Statement

同じ言語仕様を確認してください:http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2

于 2013-01-17T09:43:43.787 に答える
0

for-each ループです。コロン (:) が表示されたら、「in」と読みます

于 2014-06-18T06:25:36.327 に答える