Selamlar.Benim treeset ile ilgili bir sorum var. Aşağıdaki kodda cevabı [606, 608, 610, 612, 629] [608, 610] şu şekilde gösteriyor. Peki neden?

enter code here
13. public class Explorer2 {
14. public static void main(String[] args) {
15. TreeSet<Integer> s = new TreeSet<Integer>();
16. TreeSet<Integer> subs = new TreeSet<Integer>();
17. for(int i = 606; i < 613; i++)
18. if(i%2 == 0) s.add(i);
19. subs = (TreeSet)s.subSet(608, true, 611, true);
20. s.add(629);
21. System.out.println(s + " " + subs);
22. }
23. }

soruldu: 14 Haz '12, 14:49

hale's gravatar image

hale
127343642
cevap kabul oranı: 0%

değiştirildi: 14 Haz '12, 15:13

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Başlangıçta, s referansına 606-613 arasındaki çift sayılar ekleniyor. Yani [606,608,610,612] Ardından subSet yordamı ile, TreeSet içersindeki alt kümeler isteniyor, aralık 608-611 arası, true parametreleri ise 608 ve 611' in dahil edilip edilmeyeceği ile alakalı.608 ve 611 dahil ara değerler istendiği için subs içeriği [608,610] oluyor. En son olarak da s'ye 629 ekleniyor. s nin son içeriği [606,608,610,612,629] oluyor.

Döngü olayına da değineyim. Bir nesne referansı sout içerisinde yazdırılırsa, otomatik olarak hangi nesneye ait ise o nesnenin toString() yordamı çalışır.

public String toString() { Iterator<e> it = iterator(); if (! it.hasNext()) return "[]";

StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
    E e = it.next();
    sb.append(e == this ? "(this Collection)" : e);
    if (! it.hasNext())
        return sb.append(']').toString();
    sb.append(',').append(' ');
}

}

Collection arayüzüne erişen tüm nesneler, doğal olarak Iterable arayüzüne de erişmişlerdir. Buradan döngünün nasıl oluşturulduğunu anlayabilirsin.

Basit şekliyle böyle listeleyebilirsin;

 for(Integer deger:s)

     System.out.println(deger);
 }
permanent link

cevaplandı: 14 Haz '12, 16:42

UsTa's gravatar image

UsTa
2.0k925
cevap kabul oranı: 20%

değiştirildi: 15 Haz '12, 02:45

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079

Soruldu: 14 Haz '12, 14:49

Görüntüleme: 522 kez

Son güncelleme: 15 Haz '12, 02:45

powered by BitNami OSQA