0% encontró este documento útil (0 votos)
5 vistas6 páginas

Comparativa entre HashMap y TreeMap en Java

El documento compara HashMap y TreeMap, destacando que HashMap no garantiza el orden y permite claves nulas, mientras que TreeMap mantiene el orden y no permite claves nulas. También se abordan conceptos de programación como clases abstractas, manejo de excepciones con try/catch, y la implementación de Comparable y Comparator para ordenar colecciones. Finalmente, se explica el uso de mapas para asociar claves y valores, enfatizando las diferencias de rendimiento entre HashMap y TreeMap.

Cargado por

xovib66226
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas6 páginas

Comparativa entre HashMap y TreeMap en Java

El documento compara HashMap y TreeMap, destacando que HashMap no garantiza el orden y permite claves nulas, mientras que TreeMap mantiene el orden y no permite claves nulas. También se abordan conceptos de programación como clases abstractas, manejo de excepciones con try/catch, y la implementación de Comparable y Comparator para ordenar colecciones. Finalmente, se explica el uso de mapas para asociar claves y valores, enfatizando las diferencias de rendimiento entre HashMap y TreeMap.

Cargado por

xovib66226
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

HASHMAP

HashMap: No garantiza ningún orden de los elementos.

HashMap usa una tabla hash.

HashMap es generalmente más rápido si no te importa el orden

HashMap: La clave debe tener un hashCode() y equals() válidos.

HashMap: Permite una clave null.

HashMap: Cuando necesitas buscar datos rápidamente, sin importar el orden

TREEMAP

TreeMap: Mantiene los elementos ordenados según el orden natural de las claves
(Comparable) o usando un Comparator.

TreeMap usa un árbol rojo-negro (Red-Black Tree), una estructura de árbol balanceado binario.

TreeMap es más lento, pero mantiene el orden

TreeMap: La clave debe implementar Comparable o debes proporcionar un Comparator.

TreeMap: No permite claves null, lanza NullPointerException

TreeMap: Cuando necesitas mantener las entradas ordenadas por clave


Clase 21/5 Progra basica

Vimos

Clases abstractas (principio de la clase)

Son las clases mas generales dentro de los objetos, cuenta con herencia casi siempre

(Ejemplo Figura, Rectangulo,Circulo)

Exceptions (Hora 3:00:00 de la clase)

Try/Catch: Trato de hacer algo(Try) y si ocurre un error lo resuelvo con catch

throw = arrojar ->throw exception (arroja una excepcion en tiempo real)

throws = arroja -> ese metodo en caso de excepcion arroje tal excepcion / este metodo podria
arrojar tal excepcion

notas: composicion es tener objetos dentro de objetos

polimorfismo -> Persona newJugador = new Jugador();

-1 try/catch lo pongo adentro del test, en el metodo que puede fallar,

el metodo debe contener un throws exception

-2 dentro de ese metodo separo la parte donde puede fallar y le agrego un throw new
<nombreDeLaExcepcion>

-3 declaro lo que hace la excepcion en una clase nueva

-4 agrego la posibilidad de lanzamiento al lado del primer metodo


public boolean aEsIgualAB() throws aNoEsIgualABException {

boolean condicion = false;

if ( A == B){

syso( "A ES IGUAL A B")

condicion = true;

} else{

throw new aNoEsIgualABException("A NO ES B");

(en una clase nueva)

public class aNoEsIgualABException extends Exception {

public aNoEsIgualABException(String mensaje){

super(mensaje)

(en los tests)

@Test (expected = [Link] )

28/05

Como ordenar colecciones del tipo set

//////////////////////////////////////////////////////

Comparable = orednamiento natural

implements Comparable<tipoDeDatoObjeto>

@Override

public int compareTo(Objeto a){

return [Link] compareTo([Link].);

ascendente

public int compareTo(Objeto a){

return [Link]([Link]());

descendente
nota: trabaja asi

30 - 20 = 10

return [Link] - [Link]

entonces si da positivo detecta el primero es mayor al segundo

20 - 30 = -10

return [Link] - [Link]

entonces si da negativo detecta que el segundo es mayor al primero

y si da 0 son iguales

El @Override compareTo lo tengo que poner en la class del objeto que quiero comparar

Para hacer ordenamiento uso treeSet para no tener repetidos ya que el treeSet me descarta
los valores que dan 0

Si tengo un arraylist tengo que usar [Link](arrayList)

///////////////////////////////////////////////////

Comparator = ordenamiento con comparador

El comparador es una nueva clase generada

por ej;

public class nuevaClaseComparadora implemetns Comparator(){}

funciona practicamente igual que comparable, pero este compara dos objetos

@Override > compare (No compareTo)

lo llamo así

Set<Persona> personas = new treeSet<>(new nuevaClaseComparadora) <- Este es mi


comparador

public class claseCompraradora implements Comparator<tipoDeDatoObjeto>


@Override

public int compare(Objeto a, Objeto b){

return [Link]().compareTo([Link]());

descendente

@Override

public int compare(Objeto a, Objeto b){

return [Link]().compareTo([Link]());

ascendente

TAMBIEN puedo hacer un comparador doble

ej:

OrdenadorPorEdad ordenEdad = new OrdenPorEdad()

OrdenadorPorNobre ordenNombre = new OrdenPorNombre()

Comparator<Persona> comparadorPersona = [Link](ordenNombre)

Set <Persona> personasOrdenadas = new TreeSet<>(comparadorPersona)

////////////////////////////////////////////////////////////

Mapas

Un map es lo que almacena la clave y el valor

(key y value), permite el asociamiento de claves

explicacion como funciona ->3:18:00

El mapa es una especie de coleccion que vincula una clave con un valor, ambos pueden ser del
tipo que yo quiera, tanto valores como int o char como tambien objetos

Map<k,v>

Map<String, Persona> mapa = new HashMap<>();

[Link]("c", new Persona ("Carlos",40));

para que funcione debo implementar hashcode y equals (@override)


Para agregar al mapa uso .put y para quitarle .remove

HashMap: claves no ordenadas

TreeMap: claves ordenadas, pero mayor consumo de recursos

//////////////////////////////////////////////////////////////

04/06

1er Parte

LISTA ASCENDENTE DE MENOR A MAYOR

LISTA DESCENDENTE DE MAYOR A MENOR

/////////////////////////////////////////////////////////////////

También podría gustarte