#akış #TeknoYardım #Yazılım #Java
Arkadaşlar priority queue ile alakalı sorum. Kıyaslamayı yapmak için yazılan compareTo methodunu nasıl yazmam gerek? Queue mun içinde tuttuğum objenin bi field ına göre yapımasını istiyorum kıyasın. Bu objenin clasında açtığım CompareTo methodunu nasıl yazmam gerekiyor ki istediğim sıralamada alayım objeleri queue nun içinden?
Son bir saat içinde 162 ziyaretçi, 50 kayıtlı kullanıcı giriş yaptı.
- © 2026 TeknoSeyir
- Hakkımızda
- İletişim
- Kullanım Koşulları
- Gizlilik Politikası
- Sosyal Ağ Kuralları
- RAM desteği bilendenal.com tarafından sağlanmaktadır.
- Sunucu desteği DGN Teknoloji tarafından
sağlanmaktadır.
compareTo parametre olarak bir obje alıyor, bu objeye 'other' ismini verelim. Eğer this.field, other.field dan küçükse sıfırdan küçük bir sayı eşitlerse sıfır, this.field büyükse pozitif bir sayı return edin. Eğer tam anlatamadıysam bilgisayar başına geçince örnek bir kod yazıp buraya koyabilirim.
Hocam compareTo olayı o değil mi zaten.
Açık sorayım biraz. Ben queue mun içinde Locomotive adlı bi obje tutuyorum. Bu Locomotive clası da comparable ı extend ediyor. Yani içinde bi compareTo methodu var. İşte vu methodu yazdıktan sonra queue.peek methodu bana sıralamada en önde olanı vermesi gerekiyor. Ama yapamadım işte
Ben aklıma gelenlerden bahsedeyim kısaca. Eğer verileri bir array, arrayList, circular-array ya da linked-list gibi yapılar üzerinde tutuyorsanız, eklerken sıralı eklemek ya da peek metodu çağırıldığında verileri baştan sona tarayıp en küçük olanını döndürmek en basit çözümler olarak geliyor aklıma. Çok daha etkili bir yöntem olarak; min-heap oluşturup her seferinde en tepedeki elemanı döndürmek geliyor aklıma ama biraz uğraştırıcı olacaktır.
Eğer compareTo metodunu üstte bahsettiğim gibi yazdıysanız en küçüğünü bulmak ya da sıralı olarak eklemek için bu compareTo metodunu çağıracaksınız. if(a.compareTo(b) < 0) { doThis } gibi.
Teşekkürler arkadaşlar @hector @regedit