LinkedHashMap es como HashMap con una característica adicional de mantener un orden de elementos insertados en él. HashMap proporcionó la ventaja de una inserción, búsqueda y eliminación rápidas, pero nunca mantuvo el seguimiento y el orden de inserción que proporciona LinkedHashMap donde se puede acceder a los elementos en su orden de inserción.
Hay dos formas de imprimir LinkedHashMap que contiene objetos de clase personalizados en Java:
- Uso de System.out.println
- Uso de la entrada
Método 1 (usando el método System.out.println())
La forma más sencilla de imprimir LinkedHashMap es usar el método System.out.println directamente, que usa el método toString de la clase LinkedHashMap. El método toString, que se hereda de la clase AbstractMap , devuelve una representación de string de todas las asignaciones del mapa entre { y } y cada par clave-valor separado por una coma. Pero si LinkedHashMap contiene objetos de una clase personalizada como claves o valores, el método toString de la clase Object imprime el nombre de la clase, seguido de @, seguido del código hash del objeto que no es legible por humanos. A continuación se muestra la implementación:
Ejemplo 1:
Java
// Java program to demonstrate how to print LinkedHashMap of // custom class objects import java.util.*; // Custom class class Triangle { private String type; // Constructor public Triangle(String type) { this.type = type; } } public class GFG { public static void main(String[] args) { // New LinkedHashMap of custom class Triangle LinkedHashMap<Integer, Triangle> map = new LinkedHashMap<Integer, Triangle>(); // Add elements to LinkedHashMap map.put(1, new Triangle("Equilateral triangle")); map.put(2, new Triangle("Isosceles triangle")); map.put(3, new Triangle("Right angled triangle")); // Print map System.out.println(map); } }
{1=Triangle@214c265e, 2=Triangle@448139f0, 3=Triangle@7cca494b}
Pero podemos imprimirlo en un formato legible por humanos anulando el método toString() en la clase personalizada. A continuación se muestra la implementación:
Ejemplo 2:
Java
// Java program to demonstrate how to print LinkedHashMap of // custom class objects import java.util.*; // Custom class class Triangle { private String type; // Constructor public Triangle(String type) { this.type = type; } // Override toString method to print human readable // information about the object public String toString() { return this.type; } } public class GFG { public static void main(String[] args) { // New LinkedHashMap of custom class Triangle LinkedHashMap<Integer, Triangle> map = new LinkedHashMap<Integer, Triangle>(); // Add elements to LinkedHashMap map.put(1, new Triangle("Equilateral triangle")); map.put(2, new Triangle("Isosceles triangle")); map.put(3, new Triangle("Right angled triangle")); // Print map System.out.println(map); } }
{1=Equilateral triangle, 2=Isosceles triangle, 3=Right angled triangle}
Método 2 (usando Map.Entry)
Podemos imprimir LinkedHashMap que contenga objetos de clase personalizados en Java usando Entry. A continuación se muestra la implementación:
Ejemplo:
Java
// Java program to demonstrate how to print LinkedHashMap of // custom class objects import java.util.*; // Custom class class Triangle { private String type; // Constructor public Triangle(String type) { this.type = type; } // Override toString method to print human readable // information about the object public String toString() { return this.type; } } public class GFG { public static void main(String[] args) { // New LinkedHashMap of custom class Triangle LinkedHashMap<Integer, Triangle> map = new LinkedHashMap<Integer, Triangle>(); // Add elements to LinkedHashMap map.put(1, new Triangle("Equilateral triangle")); map.put(2, new Triangle("Isosceles triangle")); map.put(3, new Triangle("Right angled triangle")); // Print map using Entry for (Map.Entry<Integer, Triangle> entry : map.entrySet()) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } } }
Key: 1, Value: Equilateral triangle Key: 2, Value: Isosceles triangle Key: 3, Value: Right angled triangle
Publicación traducida automáticamente
Artículo escrito por nikhilchhipa9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA