Foros del Web » Programación para mayores de 30 ;) » Java »

ordenando con treeMap

Estas en el tema de ordenando con treeMap en el foro de Java en Foros del Web. hola, estoy intentando ordenar unas coordenadas que tengo en una base de datos según la distancia a la qeu estoy de ellas. Así qeu tengo ...
  #1 (permalink)  
Antiguo 30/09/2011, 05:01
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
ordenando con treeMap

hola, estoy intentando ordenar unas coordenadas que tengo en una base de datos según la distancia a la qeu estoy de ellas. Así qeu tengo este hashMap

Código:
		Map miMap= new HashMap();

		miMap.put("1085","lat1 lng1");
		miMap.put("1312","lat2 lng2");
		miMap.put("1431","lat3 lng3");
		miMap.put("1144","lat4 lng4");
		miMap.put("917","lat5 lng5");
		miMap.put("1199","lat6 lng6");
		miMap.put("1634","lat7 lng7");
		miMap.put("2002","lat8 lng8");
		miMap.put("2280","lat9 lng9");
		miMap.put("3470","lat10 lng10");
Lo ordeno con un treeMap:

Código:
Map mapOrdenado = new TreeMap(miMap);
Ahora imprimo las claves a ver si están en orden:

Código:
1085
1144
1199
1312
1431
1634
2002
2280
3470
917
Es decir, el problema viene cuando un número no tiene el mismo número de dígitos qeu el resto, he probado también con una distancia 314 y queda entre el 2280 y el 3470.

me parece "sucio" buscar el mayor número y luego rellenar con 0 las distancias con menos dígitos (en este caso sería 0917 y 0314) para que lo haga bien, supongo que habrá alguna forma "más limpia"

gracias!
  #2 (permalink)  
Antiguo 30/09/2011, 06:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
Respuesta: ordenando con treeMap

Gracias ya lo he solucionado, he creado una nueva clase con mi estructura (int, string) que implementa Comparable y funciona perfecto.


Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:35.