Seguimos con preguntas de entrevistas, hay que recordar que la oportunidad que estás buscando puede que sea la entrevista que tienes mañana, lo que quiere decir que probablemente estas preparándote y quieres que todo salga bien, pero una pregunta tan sencilla como esta puede dejarte de lado si no sabes responderla con la seguridad de que sabes que lo que dices es cierto.
Estas dos estructuras de datos son muy similares, pero también tienen algunas diferencias muy notables, haciendo una breve introducción, los dos son estructuras de datos muy usados en el Collection framework.
Pregunta fija para una entrevista, a veces trabajamos con HashMap pero no sabemos en realidad el concepto del mismo y menos como funciona internamente. Un HashMap es la implementación de la interface Map, esta interface es un tipo de
CollectionUna Collection es una interface que agrupa un conjunto de elementos.
que almacena datos asociando una
llave a un valorMap<key, value>. key= la llave. value= String, Integer, Boolean...
, esta interface sirve para muchas cosas y tiene ciertas caracteristicas que la definen, por ejemplo, no permite key duplicados, cada key tiene que estar asociado a un valor como máximo, si agregas un key que ya existe sobrescribe el valor del key anterior, solo permite Object types lo que quiere decir que no puedes poner un valor primitivo...
Volviendo al tema casi siempre se utiliza el HashMap como implementación del Map pero tiene sus cosas, por ejemplo, no garantiza que los elementos que vamos agregando estén ordenados, no deberíamos usarla en aplicaciones multithread porque no es synchronized, pero como todo en el mundo de Java, esto se puede lograr con unas líneas de código.
El HashMap funciona con el
principio del hashingEl principio se basa en asignar una ubicación para cierta key, dependiendo de una key determinada se le asigna un id único, en este caso se utiliza el método hashCode() el cual heredan todos los objetos en Java, algo importante de resaltar es que un objeto solo retornara un id, lo que quiere decir que si invocamos el hashcode con otro objeto idéntico devolverá el mismo id.
, como ya explique trabaja asignando una ubicación a una key con el método hashCode() de Java.
Comenzando desde el principio, así podemos crear un HashMap:
// Un HashMap simple de llave String y valor Integer.
HashMap<String, Integer> hashMapEdad = new HashMap<String, Integer>();
El constructor del HashMap que invocamos automáticamente le asigna
Algo que se ve muy bien en las aplicaciones de escritorio en Java, son los titulos con un color de fondo gradiente (JLabel Gradient Background), para hacerlo solo hay que sobreescribir el metodo void paintComponent(Graphics g) de la clase JComponent, recuerda que esta es la clase base para los componentes SWING.
Para lograr un color de fondo gradiente horizontal:
Que mejor manera de controlar la fecha que un usuario ingresa que con un calendario en donde con un simple clic ya obtengamos Año, Mes y Día, en Java Swing no trae por defecto un componente que facilite este comportamiento, así que por eso hay que descargar una librería externa llamada JCalendar, dicha librería tiene varias funcionalidades, podemos elegir desde un calendario la fecha completa, la fecha de hoy, elegir una fecha maxima o minima para seleccionar, elegir solo un día, año o mes... En fin en este Tutorial de JCalendar vamos hacer varios ejemplos con las funcionalidades que ofrece utilizando el IDE JBoss Developer Studio o eclipse.
Vaciar DefaultTableModel de un JTable. Quitar datos de un DefaultTableModel.
Cuando tenemos un JTable que utiliza DefaultTableModel muchas veces es necesario vaciar el JTable, en este caso hay que eliminar dato por dato del DefaultTableModel recorriéndolo de esta manera:
int numDatos = defaultTableModel.getRowCount();
for (int i = 0; i < numDatos; i++) {
defaultTableModel.removeRow(0);
}
Primero obtenemos el numero de datos que contiene el DefaultTableModel y después recorremos los datos con un bucle for para ir borrando el primer dato encontrado.
HyperSQL (HSQLDB) es una base de datos relacional, es hecha 100% en Java y corre en la maquina virtual de Java (JVM), hay muchas características que hacen de HSQLDB una base de datos atractiva para los desarrolladores, podemos usarla sin la necesidad de un servidor, para hacer pruebas en memoria utilizando la memoria RAM, es de código abierto, con solo importar el JAR a tu proyecto puedes comenzar a trabajar, bien sea para pruebas o para hacer funcionar tu aplicación en un ambiente de producción, claro que también trae su Database Manager en SWING para hacerle consultas a nuestras tablas por fuera de nuestra aplicación.
En este Tutorial vamos a centrarnos en el funcionamiento de HSQLDB desde Java. Lo que necesitamos es un IDE, en este caso yo utilizo JBoss Developer Studio o lo que es lo mismo eclipse y la última versión de HSQLDB que en este momento es la 2.3.3.