Ver Mensaje Individual
  #14 (permalink)  
Antiguo 24/06/2018, 20:42
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: Balanceos con Árboles Hash

Hola FuzzyLog probé lo que me dijiste pero no funcionó dando error de que no es admitido, sólo que de lo que me dijiste cambié un poco el test y encontre algo interesante, resulta que antes de agregar los elementos 6,7,8,9,10 conserva el orden de forma decreciente sólo que cuando agrego los mencionados acontece lo dicho en mi mensaje anterior.
Este es el test cambiado:

Código Java:
Ver original
  1. private static void insertAllWithClassOrderAsc(){
  2.         Persona.resetId();
  3.         //MyTreeMap<Integer,Persona> map1 = new MyTreeMap();
  4.         MyTreeMap<Integer,Persona> map1 = new MyTreeMap(new OrdenarDesc());
  5.         MyTreeMap<Integer,Persona> map2 = new MyTreeMap(new OrdenarAsc());
  6.         Persona p1 = new Persona(Persona.getMaxId(), "Juan", 56);
  7.         Persona.maxIdUp();
  8.         Persona p2 = new Persona(Persona.getMaxId(), "Alberto", 73);
  9.         Persona.maxIdUp();
  10.         Persona p3 = new Persona(Persona.getMaxId(), "Julia", 62);
  11.         Persona.maxIdUp();
  12.         Persona p4 = new Persona(Persona.getMaxId(), "Luis", 71);
  13.         Persona.maxIdUp();
  14.         Persona p5 = new Persona(Persona.getMaxId(), "Maria", 18);
  15.         Persona.maxIdUp();
  16.         Persona p6 = new Persona(Persona.getMaxId(), "Pedro", 16);
  17.         Persona.maxIdUp();
  18.         Persona p7 = new Persona(Persona.getMaxId(), "Deborah", 26);
  19.         Persona.maxIdUp();
  20.         Persona p8 = new Persona(Persona.getMaxId(), "Nelson", 37);
  21.         Persona.maxIdUp();
  22.         Persona p9 = new Persona(Persona.getMaxId(), "Tommy", 22);
  23.         Persona.maxIdUp();
  24.         Persona p10 = new Persona(Persona.getMaxId(), "Manuela", 15);
  25.         Persona.maxIdUp();
  26.         map1.put(p1.getId(), p1);
  27.         map1.put(p2.getId(), p2);
  28.         map1.put(p3.getId(), p3);
  29.         map1.put(p4.getId(), p4);
  30.         map1.put(p5.getId(), p5);
  31.         passToMap(map1, map2);        
  32.         System.out.println("---- prueba 3 ----");
  33.         System.out.println("* tamaño mapa 1: " + map1.size());
  34.         /*map.entrySet().forEach((e) -> {
  35.             System.out.println(e);
  36.         });*/
  37.         System.out.println(map1);
  38.         System.out.println("* tamaño mapa 2 antes del extra: " + map2.size());
  39.         /*map2.entrySet().forEach((e) -> {
  40.             System.out.println(e);
  41.         });*/
  42.         System.out.println(map2);
  43.         /*-------- extra --------*/
  44.         map2.put(p6.getId(), p6);
  45.         map2.put(p7.getId(), p7);
  46.         map2.put(p8.getId(), p8);
  47.         map2.put(p9.getId(), p9);
  48.         map2.put(p10.getId(), p10);
  49.         map2.put(10, new Persona(10, "Micaela", 21));
  50.         map2.put(6, new Persona(6, "Sergio", 25));
  51.         map2.put(null, new Persona(11, "Sefafin", 7));
  52.         System.out.println("* tamaño mapa 2 después del extra: " + map2.size());
  53.         /*map2.entrySet().forEach((e) -> {
  54.             System.out.println(e);
  55.         });*/
  56.         System.out.println(map2);
  57.        
  58.     }

Y esto es lo que sale en la consola:

Cita:
run:
---- prueba 3 ----
* tamaño mapa 1: 5
[1 -> Persona{1, Nombre: Juan, Edad: 56}]
[2 -> Persona{2, Nombre: Alberto, Edad: 73}]
[3 -> Persona{3, Nombre: Julia, Edad: 62}]
[4 -> Persona{4, Nombre: Luis, Edad: 71}]
[5 -> Persona{5, Nombre: Maria, Edad: 18}]

* tamaño mapa 2 antes del extra: 5
[5 -> Persona{5, Nombre: Maria, Edad: 18}]
[4 -> Persona{4, Nombre: Luis, Edad: 71}]
[3 -> Persona{3, Nombre: Julia, Edad: 62}]
[2 -> Persona{2, Nombre: Alberto, Edad: 73}]
[1 -> Persona{1, Nombre: Juan, Edad: 56}]

* tamaño mapa 2 después del extra: 10
[10 -> Persona{10, Nombre: Micaela, Edad: 21}]
[9 -> Persona{9, Nombre: Tommy, Edad: 22}]
[8 -> Persona{8, Nombre: Nelson, Edad: 37}]
[7 -> Persona{7, Nombre: Deborah, Edad: 26}]
[6 -> Persona{6, Nombre: Sergio, Edad: 25}]
[5 -> Persona{5, Nombre: Maria, Edad: 18}]

BUILD SUCCESSFUL (total time: 0 seconds)
Espero sus respuestas y saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias