Non cambia la situazione con HashSet, in pratica io devo riempire una jList con i dati provenienti da un ResultSet che ha questa forma:
codice:
ID_MAL, MALATTIA
2, Bronchite
22, Celiachia
23, Diabete
Il metodo che riempe la jlist è il seguente:
codice:
private void creaLista(ResultSet cursore, String tipo) throws SQLException {
// ...
int i = 0;
Set lista = new HashSet();
cursore.beforeFirst();
// finchè il cursore può avanzare, aggiungi il nome della malattia alla var lista
// e aggiungi il rispettivo id della malattia alla variabile lista_id
while(cursore.next()) {
lista.add(cursore.getString("MALATTIA"));
lista_id.add(cursore.getString("ID_MAL"));
}
// calcola la dimensione della variabile lista e converto il tutto in 2 array
int size = lista.size();
String[] array = (String[])lista.toArray(new String[lista.size()]);
String[] array_id = (String[])lista_id.toArray(new String[lista_id.size()]);
// finchè gli elementi della lista non sono finiti
// aggiungi la coppia "malattia id_mal" nella jlist
while(i < size){
lstMalMod.addElement(array[i]+" "+array_id[i]);
i++;
}
}
Fin qui sembrerebbe non esserci nulla di anormale, ma, benchè il resultSet che passo al metodo non ha nessun tipo di ordinamento le stringhe nella jList risultano:
codice:
Bronchite 2 (esatto per pura coincidenza)
Diabete 22 (doveva essere 23 non 22)
Celiachia 23 (doveva essere 22 non 23)
Notare che le associazioni tra la malattia e l'id della malattia stessa sono completamente diverse da quelle corrette che erano nel ResultSet.