SORU
2 Kasım 2008, Pazar


Döngü için bir Ve için-her döngü arasında performans farkı var mı?

Eğer varsa, performans aşağıdaki iki döngü arasındaki fark nedir?

for(Object o: objectArrayList){
    o.DoSomthing();
}

ve

for(int i=0; i<objectArrayList.size(); i  ){
    objectArrayList.get(i).DoSomthing();
}

CEVAP
2 Kasım 2008, Pazar


Joshua Bloch tarafından Effective Java: Madde 46

-Her döngü, sunulan sürüm 1.5, darmadağın olur kurtulmak ve hata için fırsat tarafından yineleyici, gizleme veya dizin değişken tamamen. Sonuçta elde edilen deyim eşit koleksiyonları ve uygular diziler:

// The preferred idiom for iterating over collections and arrays
for (Element e : elements) {
    doSomething(e);
}

Kolon görünce (:) okumak gibi “içinde.” Böylece döngü yukarıdaki gibi okur “her öğe için öğeleri e.” Not performans cezası yok ki -her döngü için bile kullanmak için diziler. Aslında, ufak bir ikram olabilir sıradan bir performans avantajı bazı durumlarda döngü için, dizi dizinin limit hesaplar sadece bir kez. Bunu yapabiliyorken el (Madde 45), programcılar yok her zaman yapmak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • RiverCityGraphix

    RiverCityGra

    6 Ocak 2012
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008