Java - Ordenación de cadena String

   
Vista:

Ordenación de cadena String

Publicado por txaler (3 intervenciones) el 26/08/2013 17:22:29
Buenas tardes,

Me ha surgido un problema en el curro que os agradecería enormemente si me pudieras echar una mano. No os cuento todo el rollo del porque ya que la historia es bastante larga (os debería primero contar en que consiste mi proyecto, etc...)

Al final de todo resulta que tengo una lista de string con varias "fechas" y lo pongo entre comillas porque estas fechas son especiales y no tienen el formato que tendría una fecha normal.

Necesito poder ordenar esta lista con una coherencia lógica, que en este caso es de menor a mayor.

Ejemplo:

lista = [ 10Y, 10M, 3Y, 4Y, 1W, 1D ]

siendo:

Y = AÑO
M = MES
W = SEMANA
D = DIA

Necesito que quede ordenado de menos cantidad de días a mayor cantidad de días, que en este caso sería [ 1D, 1W, 10M, 3Y, 4Y, 10Y ]

En ningún momento se solaparían las letras, quiero decir nunca puede aparecer [ 1W, 7D ] cuando se llega a los 7 dias el fichero del que leo esta información ya tiene escrito 1W en vez de 7D.

Muchísimas gracias por vuestra ayuda.

Espero que entre todos podamos arreglarlo.

Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ordenación de cadena String

Publicado por UnoPorAhi (128 intervenciones) el 27/08/2013 14:04:17
Implementa un comparator que tenga en cuenta el peso de cada tipo de dia:Y=365, M=30, W=7 y D=1

public class DaysComparator implements Comparator<String> {
@Override
public int compare(MyObject o1, MyObject o2) {
//implementa aqui
}
}

Despues, ya solo tienes que aplicar sort sobre tu coleccion:
Collections.sort(miLista, new DaysComparator ());

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar