2016-03-30 6 views
0

Ich habe eine JComboBox Anruf cmb_user_id, ich bekomme alle Benutzer-ID aus der Datenbank und speichern Sie es in einem Array von Objekten namens borrow_data, aber es gibt einige duplizierte Daten drin, so verwende ich .contains() Methode zu filtern, unten ist mein Code:Get distinct Wert mit ArrayList # contains() funktioniert nicht

ArrayList<String> al_id = new ArrayList<>(); 
cmb_user_id.addItem("Select One"); 
for(int i = 0; i < borrow_data.length; ++i) 
{ 
    if(!al_id.contains(borrow_data[i].getUser().getId())); 
    { 
     cmb_user_id.addItem(borrow_data[i].getUser().getId()); 
     al_id.add(borrow_data[i].getUser().getId()); 
     System.out.println("Content: " + borrow_data[i].getUser().getId()); 
    } 
} 

Aber schließlich werden alle Daten noch gespeichert in cmb_user_id, einschließlich der duplizierten Daten, mein Filter überhaupt nicht funktionieren.

+5

Es ist schwer zu verstehen, was mit so vielen Variablen passiert, von denen wir nichts wissen. Bitte schreiben Sie dies als [mcve] um - idealerweise den Java Namenskonventionen folgend. –

+0

nein, es gibt String – Newbie

+3

Ihr Code sieht gut aus und das Problem ist wahrscheinlich woanders - Sie sollten Jon Skeets Rat befolgen. – assylias

Antwort

4
if(!al_id.contains(borrow_data[i].getUser().getId())); 

Hat ein ; bei der davon, was bedeutet, dass die folgende {...} wird immer auszuführen.