2013-01-17 22 views
10

Java'da kolon ne anlama geliyor?Java'da ne demek istiyorsun?

words her madde için

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; 
} 
+1

Bu, her bir döngü için bilinir, google ve şimdi, cevapların hiçbiri henüz adlandırmadı. – 11684

+0

olası yinelenen [Her döngü için Java nasıl çalışır?] (Http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work) –

+1

Bu soruların cevapları tamamlanmış görünmüyor: Bu nedir: import hudson.model.SCMS; (...) SCMS: için (SCM scm: scmTriggerItem.getSCMs()) {şey();}? – Gustave

cevap

5
(String i : words) 

: Bunu alabilir bu yüzden cevap

i olarak yineleyici öğesini ve bir öğeyi belirtmek için - bu for-each döngüsü

2

temsil for each loop kolonunda iki nokta üst üste dizinin bir parçasıdır, iki nokta üst üste de gelir ( label

) 210
12

Bir şey ifade eder, bu döngü için geliştirilmiş bir şeydir.

: for-each

for (String i: words) 

Etkili Java okuma onun değerinde maddesine 46,

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

Joshua Bloch aynı şeyleri ifade eder, şöyle diyor 1.5 sürümünde tanıtılan döngü, yineleyici veya dizin değişkenini tamamen gizleyerek dağınıklığı ve hata olasılığını ortadan kaldırır. koleksiyonları ve diziler

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

Eğer iki nokta üst üste gördüğünüzde (:) olarak okumak üzerinden yineleme için

tercih deyim: Ortaya çıkan deyim koleksiyonları ve diziler için de geçerlidir “in”. Böylece, yukarıdaki döngü “elemanlarda her öğe için” olarak okur. Diziler için bile her bir döngü için kullanıldığında performans cezası olmadığını unutmayın. Aslında, bazı durumlarda, dizinin sınırını sadece bir kez hesapladığı için, normal koşullara göre küçük bir performans avantajı sunabilir. Bunu el ile yapabilmenize rağmen (Madde 45), programcılar her zaman böyle yapmazlar.

+0

Aynı _acts_, ancak JVM içindir gerçekten aynı tama? – 11684

+0

hayır aynı değiller. Foreach, döngünün uzunluğunun, koleksiyonda bulunan elemanların sayısından çıkarılabileceği koleksiyonlarla birlikte kullanılır. Her iki şekilde de yapabilirsin, ama foreach, koleksiyonları sömüren sözün şekeridir. Bu durumda – Abraham

+0

, Sorununuza içine dahil olabilir? OP muhtemelen deneyimli bir Java geliştiricisi değildir ve bence en başından doğru şeyleri öğrenmek en iyisidir. – 11684

0

Bu döngü-her içindir. Koloniyi gördüğünüzde (:) " olarak" okuyun. İçerdiği örnekler ile Oracle docs içinde çok iyi bir açıklama bulabilirsiniz, here