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
/////////////////////////////////////////////////////////////////