Devo ordinare un ArrayList fatta da Stringhe che contengono valori come, ad esempio, questi:
233f
233a
1210
1408
233
233b
1513
572k
572g
572
1839
1838
vorrei che dopo l'ordinamento la lista fosse questa:
1839
1838
1513
1408
1210
572k
572g
572
233f
233b
233a
233
Ho provato questo codice:
Collections.sort(visuraList, new ComparatorForCodice());
dove la classe comparetor è questa:
ma la lista non risulta ordinata come voglio io, come posso fare?codice:public class ComparatorForCodice implements Comparator { public int compare(Object arg0, Object arg1) { int codice0 = 0; String codice0_ = ((RichiestaVisuraBean) arg0).getCodice(); try { codice0 = Integer .parseInt(((RichiestaVisuraBean) arg0).getCodice()); } catch (Exception e) { System.out .println("codice0 non numerico: " + e.getMessage()); //se trovo una lettera nel codice la eliminio dalla comparazione codice0 = Integer .parseInt(codice0_.substring(0, codice0_.length()-1)); } int codice1 = 1; String codice1_ = ((MyBean) arg1).getCodice(); try { codice1 = Integer .parseInt(((MyBean) arg1).getCodice()); } catch (Exception e) { System.out .println("codice1 non numerico: " + e.getMessage()); //se trovo una lettera nel codice la eliminio dalla comparazione codice1 = Integer .parseInt(codice1_.substring(0, codice1_.length()-1)); } return (codice0 > codice1) ? 1 : 0; } }

Rispondi quotando