(Nessuna conoscenza di rete richiesta di sorta, si tratta puramente di stringhe ed elenchi).Java: ordinamento ingannevole di stringhe con prefisso (ArrayLists)
Dire che ho una funzione sul posto, una che accetta un elenco di indirizzo punteggiato IPv4 String e li ordina in ordine crescente. (Non alfabetico, vero ordinamento lungo formato ip). Chiamiamo questo:
public static ArrayList<String> sortListOfIpv4s(ArrayList<String> unsortedIPv4s);
Questa funzione è già correttamente. Dato un ingresso:
192.168.1.1, 8.8.8.8, 4.5.6.7, 244.244.244.244, 146.144.111.6
Sarà uscita la lista:.
4.5.6.7, 8.8.8.8, 146.144.111.6, 192.168.1.1, 244.244.244.244
(Cerchiamo di non entrare in un dibattito sulla questione se si debba modificare l'elenco sul posto o restituire un nuovo elenco restituisce solo un . nuovo elenco Inoltre, la funzione non può essere modificata a causa di numerosi motivi)
Tuttavia, la mia lista di input assomiglia a questo:.
Quando rimuovo i prefissi (solo uno di eof, NON NECESSARIAMENTE alternante) e creo un array pulito per passare alla funzione di ordinamento, perdo le informazioni del prefisso. Quello che vorrei è un'uscita del tipo:
e4.5.6.7, f8.8.8.8, e146.144.111.6, e192.168.1.1, f244.244.244.244
Fondamentalmente, prima di smistamento, qualsiasi prefisso era presente per ogni elemento della lista indifferenziati, lo stesso prefisso necessario aggiungere indietro agli elementi nella filtrate elenco.
Avvertenze:
Indirizzo- Un IP può ripetere nella lista originale, un massimo di due volte
- Se si ripete due volte, ciascuno dei due elementi avranno lo stesso prefisso, garantite
- Ordinamento l'algoritmo non rimuoverà i duplicati.
Un piccolo aiuto algoritmico per favore? (Ricorda, abbiamo già una funzione in grado di ordinare gli array di stringhe IPv4 puliti).
Stai dicendo che desidera trattare 'sortListOfIpv4s' come una scatola nera? Non ti è permesso cambiarlo? –
Precisamente. Ambiente di squadra, team di grandi dimensioni ed è una funzione di libreria non destinata a essere modificata per ogni caso d'uso unico. –