Bir paramızla (String bookNum, String bookTitle, int qoh, double bookPrice) bir Kitaplık envanteri nesnesi oluşturmam gereken bir atamam var. BookNum bir kitabın tirelenilen ISBN numarasıdır. Bu diziyi oluşturduktan sonra, Koleksiyonlar sınıfının sıralama yöntemini kullanmalıyım. Benim varlığım BookInventory sınıfında, arraylist'i bookNum (bir String olan) tarafından sıraya dizecek bir compareTo() yazmam gerekiyor. Bunu nasıl yaparım? Bu benim ilk deneyimim ve anlayamıyorum.ortak bir int yazarak compareTo() yöntemi java
cevap
Bu başlangıç olmalıdır:
public class BookInventory implements Comparable<BookInventory> {
// code
public int compareTo(BookInventory other){
return bookTitle.compareTo(other.bookTitle);
}
//code
}
şey bu Karşılaştırılabilir uygulamaktır dan size bir ArrayList sıraladığınızda compareTo yöntemi otomatik olarak adlandırılan, thats kendi özel uygulamak, böylece götürmek.
göz atın compareTo ve sipariş hakkında daha fazla bilgi edinmek için bu:http://download.oracle.com/javase/tutorial/collections/interfaces/order.html
Bir documentation for the Collections sınıf bakarsanız, iki sort
mwethods uygulayan göreceksiniz. Biri, listedeki öğeleri karşılaştırmak için List
ile birlikte Comparator
nesnesini alır. Diğer, Comparable
'u uygulayan herhangi bir nesnenin List
'unu alır. compareTo
, Comparable
(Comparator
, compare
'u uygulamalıdır) tarafından tanımlandığından, bu, sınıfınızın implements Comparable<BookInventory>
olarak bildirilmesi gerektiğini belirtir; bu, bunun compareTo
yöntemine sahip olması gerektiği anlamına gelir. Yöntemin yapması gereken şey için documentation for Comparable.compareTo(T)
'a bakın. Yararlı olması için String
yönteminin compareTo(String)
yöntemini bulacaksınız.
compareTo() yöntemi, birden çok özelliğe sahip iki nesneyi karşılaştırmak için kullanılır. Karşılaştırılan nesnelerin hangisinin daha büyük olduğunu belirtmek için bir tam sayı döndürecektir. Karşılaştırılan nesnelerin, doğal düzenleri olan özelliklere sahip olması daha mantıklıdır.
Dönüş değeri:
- az 0 -> nesne geçmeden önce bir amacı olduğuna işaret etmektedir.
- 0'dan fazla -> nesnedir 0'a
- eşit geçirilen nesne sonra - iki nesnenin aynı düzeyde okuyan herkes için
"9'a eşit" -> "0'a eşit" –
benim kötülüğümü oops eder. şişman parmakları yazarak. son seçeneğin "0'a eşit" olması gerekiyordu. @Paul Blessing. Teşekkür ederim –
- 1. 3 daire için bir compareTo yöntemi nasıl yapılır?
- 2. Kapatma derleyici yazarak: işlevine bakın (fabrika yöntemi)
- 3. Java parametresi int [] []
- 4. Yineleyici (Java) kullanarak bir listede en yüksek değeri döndürme yöntemi
- 5. Uygun rand_r (int * val) yöntemi
- 6. Java printDailyCost yöntemi
- 7. Java yöntemi,
- 8. Int ile BigDecimal dönüştürme int - Java
- 9. Pikselleri yeni bir yazılabilir bitmap'e yazarak
- 10. Etkili compareTo() ilkel uzun süre için
- 11. Java için int dizisi nasıl döndürülür JNI
- 12. HTML'yi karıştırmadan Pure JSP, Java benzeri kod olarak html yazarak
- 13. Java Puzzler - int dönüşümü için bir çift
- 14. Java Karşılaştırılabilir Sınıf - Karşılaştırma yöntemi, genel sözleşmesini ihlal ediyor
- 15. Android: İlkel int türünde toString() yöntemi çağrılmıyor
- 16. Java int dizi içerik tutmuyor
- 17. Hata ayıklama Java yöntemi
- 18. Python'da bir içerik yöneticisi yazarak, kendisi bir
- 19. Javascript'e yazarak ögelere erişim
- 20. Neden Android'in JSONArray'ında bir kaldırma (int position) yöntemi yok?
- 21. Java isLetterOrDigit() yöntemi, isDigit(), isLetter()
- 22. Java "rawTo" türünün bir üyesi olarak compareTo (T) için işaretlenmemiş arama. "
- 23. Java boş bir karakterle yerine yöntemi yerine
- 24. Neden Java bu yöntemi uyguladığımda "getPriority() yöntemini çözemiyor" diyor?
- 25. Java yöntemi iade ifade etmeden derler
- 26. sml olarak yazdırma int list
- 27. WPF ListBox'ta bir öğeyi yazarak nasıl bulabilirim?
- 28. Ruby'de Java statik yöntemi nasıl görünüyor? Java'da
- 29. Boru karakteri bir Java yöntemi çağrısında ne yapar?
- 30. Java 8 harita birleştirme yöntemi
Hızlı not vardır> olduğu ağır basan eşittir aksine, girdi Burada parametre, Object türünde OLMAMALIDIR. – anon58192932