Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Como saber el tipo de objeto que contiene un hashmap

Como saber el tipo de objeto que contiene un hashmap

Autor 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

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Subir imagen a un servidor web con REST/JSON

Subir imagen a un servidor web con REST/JSON

En este tutorial crearemos una sencilla aplicación para android que nos permitirá subir una imagen a un servidor web. La...

Store Procedure: Result Set

Store Procedure: Result Set

Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los R...

Ejercicios sencillos en C Sharp

Ejercicios sencillos en C Sharp

Lenguaje: C# Nivel: Básico 1) Se desea desarrollar un programa que permita introducir una oración por teclado y contar l...

Descargar Doodle Google Pacman

Descargar Doodle Google Pacman

Hace un par de años atras google para el aniversario del juego de Pacman saco un doodle en su homenaje, ese doodle que s...

Introducción a Scene Builder y MVC (Parte I)

Introducción a Scene Builder y MVC (Parte I)

En este tutorial realizaremos una introducción al diseño de interfaces gráficas en JavaFX y Scene Builder, así también v...

Personalizar JTabbedPane con Netbeans

Personalizar JTabbedPane con Netbeans

Crear una librería swing para java utilizando Netbeans no es nada del otro mundo y la cantidad de código que vayamos a e...

Comparte lo que sabes

Categorias

Últimas entradas

En muchas ocasiones es necesaria la personalización de componentes java para que estos se adecuen a nuestros requerimien...

En este post mostramos como personalizar el Header (encabezado) de un componente JTable en Java colocando iconos, centra...

El JTable de Java es un gran componente para mostrar datos en una tabla de una forma rápida y sencilla, sin embargo en v...

En este post veremos un ejemplo sencillo de como descargar desde Internet archivos de cualquier tipo (*.jpg, *.png, *.gi...

Herramientas

Generador de Enlaces a Whatsapp