Implementación de la colección LinkedHashMap; se redefine la clase Libro con las interfaces comparable y comparator
package packageHashSet; import java.util.Comparator; import java.util.Objects; public class LibroComparableComparator implements Comparable<librocomparablecomparator> , Comparator <librocomparablecomparator> { private int indice; private String titulo; private String autor; private String isbn; public LibroComparableComparator(int indice, String titulo, String autor, String isbn) { this.indice = indice; this.titulo = titulo; this.autor = autor; this.isbn = isbn; } public LibroComparableComparator() { } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public int getIndice() { return indice; } public void setIsbn(int indice) { this.indice = indice; } @Override public String toString() { return "Libro{" + "indice=" + indice +" titulo=" + titulo + ", autor=" + autor + ", isbn=" + isbn + '}'; } @Override public boolean equals(Object obj) { if(obj instanceof Libro){ if(((Libro) obj).getIsbn() == this.isbn){ return true; } else { return false; } } else { return false; } } @Override public int hashCode() { int hash = 7; hash = 43 * hash + Objects.hashCode(this.isbn); return hash; } @Override public int compareTo(LibroComparableComparator o) { return this.indice - o.getIndice(); } @Override public int compare(LibroComparableComparator o1, LibroComparableComparator o2) { String tituloA = o1.getTitulo(); String tituloB = o2.getTitulo(); return tituloA.compareTo(tituloB); } }La siguiente clase implementa una colección de libros con LinkedHashMap
package packageMaps; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import packageHashSet.Libro; import packageHashSet.LibroComparableComparator; public class EjemploLinkedHashMapconLibroComparableComparator { public static void main(String[] args) { LibroComparableComparator libro1 = new LibroComparableComparator(10,"Now to program","Deitel & Deitel","12345"); LibroComparableComparator libro2 = new LibroComparableComparator(20,"Java a fondo","Pablo Augusto Sznajdleder","67890"); LibroComparableComparator libro3 = new LibroComparableComparator(30,"Piensa en Java","Bruce Eckel","13579"); LibroComparableComparator libro4 = new LibroComparableComparator(40,"Java: Interfaces gráficas","Francisco Javier Ceballos Sierra","24680"); LibroComparableComparator libro5 = new LibroComparableComparator(50,"Programador certificado JAVA 2: curso práctico","Antonio J. Martín Sierra","98765"); LibroComparableComparator libro6 = new LibroComparableComparator(60,"Programador certificado JAVA 2: curso práctico","Antonio J. Martín Sierra","98765"); System.out.println("\n********* LinkedHashMap *********"); Map< integer librocomparablecomparator=""> mapLibros = new LinkedHashMap< integer librocomparablecomparator=""> (); mapLibros.put(1,libro1); mapLibros.put(2,libro2); mapLibros.put(3,libro3); mapLibros.put(4,libro4); mapLibros.put(5,libro5); mapLibros.put(6,libro6); // Imprimimos el Map con un Iterador Iterator< integer> it = mapLibros.keySet().iterator(); it = mapLibros.keySet().iterator(); while(it.hasNext()){ Integer key = it.next(); System.out.println("Clave: " + key + " -> Valor: " + mapLibros.get(key)); } } }
Comentarios
Publicar un comentario