Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Como saber el tipo de objeto que contiene un hashmap

Como saber el tipo de objeto que contiene un hashmap

Por jc mouse lunes, marzo 5, 2012

La clase hashMap es muy util para almacenar objetos de la forma ( Clave, Objeto ), donde Clave es un identificador único para el objeto que almacenamos en el hashMap, sin embargo cuando colocamos varios objetos de diferentes clases dentro del hashMap, al momento de recuperarlos debemos saber a que tipo de clase pertenecen, para esto podemos utilizar dos metodos.

Método #1: instanceof

      OBJETO instanceof TIPO_DE_OBJETO

El operador instanceof nos permite conocer si un objeto pertenece a una clase determinada, devuelve como respuesta un boolean TRUE si pertenece y FALSE sino.

Método #2: equals

        OBJETO.equals("NOMBRE OBJETO")

El operador equals, nos permite comparar objetos, sin embargo si comparamos OBJETO_1 con OBJETO_2, para obtener un resultado positivo, ambos objetos deberian ser exactamente iguales caso contrario nos devolvera FALSE, esto no nos sirve de mucho, asi que para realizar la comparación, debemos obtener y comparar el «nombre de clase» y no la clase en si con una cadena de texto, por ejemplo «JLabel», «JTextField», etc.

Para dejar las cosas mucho mas claras es mejor colocar un ejemplo de todo lo que se explicó.

La siguiente clase que se llama «objeto.java», imlementa 3 metodos, setObjeto() para agregar objetos a un hashMap y ademas dos métodos «metodo_instanceof()» y «metodo_equals()» los cuales implementa lo explicado anteriormente

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * @web https://www.jc-mouse.net/
 * @author Mouse
 */
public class objeto {

    private Map mapa = new HashMap();

    public void setObjeto(String key, Object obj)
    {
        mapa.put(key, obj);
    }

    public void metodo_instanceof()
    {
        Iterator it = mapa.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry e = (Map.Entry)it.next();
            if(e.getValue() instanceof javax.swing.JTextField)            
                System.out.println( e.getKey() + " : el objeto es un JTextField" );
            else if(e.getValue() instanceof javax.swing.JLabel )
                System.out.println( e.getKey() + " : el objeto es un JLabel" );
            else
                System.out.println( e.getKey() + " : el objeto es 'desconocido' " );
        }
    }

    public void metodo_equals()
    {
        Iterator it = mapa.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry e = (Map.Entry)it.next(); 
            if( e.getValue().getClass().getSimpleName().equals("JTextField"))
                System.out.println( e.getKey() + " : el objeto es un JTextField" );
            else if( e.getValue().getClass().getSimpleName().equals("JLabel"))
                System.out.println( e.getKey() + " : el objeto es un JLabel" );
            else
                System.out.println( e.getKey() + " : el objeto es 'desconocido' " );
        }
    }

}

Implementado esta clase tenemos por ejemplo:

   objeto o = new objeto();
   o.setObjeto("Objeto A", (new JTextField()) );
   o.setObjeto("Objeto B", (new JLabel()) );
   o.setObjeto("Objeto C", (new JTextArea()) );
   System.out.println("por instanceof");
   o.metodo_instanceof();
   System.out.println("por equals");
   o.metodo_equals();

Lo cual nos da como resultado:

   por instanceof
   Objeto 1 : el objeto es un JTextField
   Objeto 2 : el objeto es un JLabel
   Objeto 3 : el objeto es 'desconocido' 
   por equals
   Objeto 1 : el objeto es un JTextField
   Objeto 2 :  el objeto es un JLabel
   Objeto 3 : el objeto es 'desconocido'

Espero le sea util a cualquiera 🙂

Tags

Artículos similares

Trabajando con varios Activitys

Hasta este momento utilizamos un solo Activity para desarrollar nuestras aplicaciones, sin embargo es común que las apli[...]

Tablas virtuales en java (View)

Una Vista (View) es una Tabla Virtual cuyo contenido está definido por una consulta (SELECT), al igual que una tabla rea[...]

Genera videos, imagenes y más gratis con Qwen

Qwen es una familia de grandes modelos de lenguaje (LLMs) desarrollado por Alibaba Cloud. Este modelo multimodal es capa[...]

¡Ojo aquí! 3 apps tecnológicas totalmente gratis (o casi) para creadores de contenido que no conocías

En este post, hablaremos sobre tres aplicaciones on-line con lo que van a poder armar desde mapas animados estilo cine h[...]

Contraseñas con emojis en java

Semanas atrás leí un articulo en el que se pensaba implementar los emojis como contraseñas en los dispositivos con andro[...]

Tabla con imagen de fondo en Java

En este post personalizaremos una tabla JTable Swing para pintar una imagen de fondo y darle un poco de estilo al e[...]