(No se requiere ningún conocimiento de red. Esto es puramente Cadena y Listas).Java: clasificación complicada de cadenas prefijadas (ArrayLists)
Digamos que tengo una función en su lugar, una que acepta una lista de direcciones con puntos de String IPv4, y las ordena en orden ascendente. (No alfabético, clasificación de formato largo de IP verdadero). Vamos a llamar a esto:
public static ArrayList<String> sortListOfIpv4s(ArrayList<String> unsortedIPv4s);
Esta función ya funciona correctamente. Dada una entrada:
192.168.1.1, 8.8.8.8, 4.5.6.7, 244.244.244.244, 146.144.111.6
Será salida de la lista:.
4.5.6.7, 8.8.8.8, 146.144.111.6, 192.168.1.1, 244.244.244.244
(No entremos en un debate sobre si se debe modificar la lista en su lugar o devolver una nueva lista simplemente devuelve una . nueva lista Además, la función no puede ser modificado debido a las numerosas razones)
sin embargo, mi lista de entrada tiene el siguiente aspecto:.
e192.168.1.1, f8.8.8.8, e4.5.6.7, f244.244.244.244, e146.144.111.6
Cuando elimino los prefijos (solo uno de e o f, NO NECESARIAMENTE alternan) y creo una matriz limpia para pasar a la función de clasificación, pierdo la información del prefijo. Lo que me gustaría es una salida del tipo:
e4.5.6.7, f8.8.8.8, e146.144.111.6, e192.168.1.1, f244.244.244.244
Básicamente, antes de la clasificación, cualquiera que sea el prefijo estaba presente en cada elemento de la lista sin clasificar, el mismo prefijo necesita ser añadido de nuevo a los elementos en el ordenado lista.
Advertencias:
Dirección- Un IP puede repetir en la lista original, un máximo de dos veces
- Cuando se repite dos veces, cada uno de los dos elementos tendrá el mismo prefijo, garantizado
- Ordenando algoritmo no eliminará duplicados.
Un poco de ayuda algorítmica por favor? (Recuerde, ya tenemos una función que puede ordenar listas de arreglos de cadenas IPv4 limpias).
¿Estás diciendo que quiere tratar 'sortListOfIpv4s' como un cuadro negro? No puedes cambiarlo? –
Precisamente. Entorno de equipo, equipo grande, y es una función de biblioteca no modificada para cada caso de uso único. –