Tengo una tarea en la que necesito crear un arraylist de objetos BookInventory con params (String bookNum, String bookTitle, int qoh, double bookPrice). Donde bookNum es el número de ISBN con guiones de un libro. Después de crear esta matriz, necesito usar el método de clasificación de la clase Colecciones. En mi clase BookInventory class, necesito escribir un compareTo() que termine ordenando el arraylist por bookNum (que es un String). ¿Cómo hago esto? Esta es mi primera experiencia con esto, y no entiendo.escribiendo un método público int compareTo() java
Respuesta
Esto debería empezar:
public class BookInventory implements Comparable<BookInventory> {
// code
public int compareTo(BookInventory other){
return bookTitle.compareTo(other.bookTitle);
}
//code
}
Lo que hay que sacar de este es implementar Comparable para que pueda implementar su propio método personalizado compareTo thats de llama automáticamente al ordenar un ArrayList.
Para leer más sobre compareTo y pedidos, echa un vistazo a esto:
http://download.oracle.com/javase/tutorial/collections/interfaces/order.html
Si nos fijamos un documentation for the Collections la clase, verá que implementa dos sort
mwethods. Se toma cualquier tipo de List
junto con un objeto Comparator
para comparar elementos de la lista. El otro toma un List
de cualquier tipo de objeto que implemente Comparable
. Dado que compareTo
está definido por Comparable
(mientras que Comparator
debe implementar compare
), eso le indica que su clase debe declararse como implements Comparable<BookInventory>
, lo que significa que debe tener un método compareTo
. Vea el documentation for Comparable.compareTo(T)
para lo que su método debe hacer. Encontrará que el método String
compareTo(String)
es útil.
El método compareTo() se utiliza para comparar dos objetos que tienen propiedades múltiples. Devolverá un número entero para indicar cuál de los objetos que se comparó es más grande. Tiene más sentido si los objetos que se comparan tienen propiedades que tienen un orden natural.
Valor de retorno:
- menos de 0 -> indica que el objeto está delante de la aprobada en objeto.
- más de 0 -> el objeto es después de que el objeto pasado
- igual a 0 -> los dos objetos se encuentran a mismo nivel
"igual a 9" -> "igual a 0" –
oops my bad. Dedos gordos escribiendo. la última opción se supone que es "igual a 0". @Paul Bendición. Gracias –
- 1. Java - compareTo y operadores
- 2. Java Strings: compareTo() vs equals()
- 3. Creando un método hashCode() - Java
- 4. método de fábrica estático público
- 5. escribiendo un servidor ftp java
- 6. Python equivalente de Java's compareTo()
- 7. En un método público C#, ¿qué indica el `int` aparte del entero de tipo?
- 8. ARM: ¿Está escribiendo/leyendo de int atomic?
- 9. Escribir un atributo CompareTo DataAnnotation
- 10. Scala: Especificar método público de primer orden método
- 11. escribiendo un BitSet en un archivo en java
- 12. Cómo usar CompareTo similar en cadenas en Java
- 13. Genéricos de Java: compareTo y "capture # 1-of?"
- 14. Java cipher.doFinal() escribiendo bytes adicionales
- 15. Escribiendo un Comprobador SSL usando Java
- 16. Java escribiendo en un archivo eliminado
- 17. Escribiendo un lector de RSS en Java
- 18. NHibernate.Linq -> El método CompareTo no está implementada
- 19. escribiendo para sobresalir en java
- 20. ¿Qué significa que un método sea público/privado/otro en Java?
- 21. ¿Cómo ver desde dónde se llama un método público en Eclipse usando Java?
- 22. ¿Cómo puedo aplicar este método "público" correctamente?
- 23. ¿cómo público es un repositorio público github?
- 24. "público estático" o "público estático"?
- 25. ¿No se puede usar un método público estático?
- 26. Java obtener String CompareTo como objeto de comparación
- 27. Crear un compareTo a una clase genérica que implementa Comparable
- 28. Java - mkdir() no está escribiendo el directorio
- 29. Escribiendo mi propio método de bloqueo
- 30. ¿Por qué no puedo llamar a un método privado cuando estoy dentro de un método público?
nota rápida para cualquiera que lea que a diferencia de los iguales de primer orden, la entrada el parámetro aquí NO debe ser del tipo Object. – anon58192932