2016-10-22 3 views
-3

Ich versuche, alle Vorkommen eines Elements auf ein Array zu setzen, wenn es über eine lineare Suche gefunden wird. Nehmen wir an, das Array lautet wie folgt:Alle Vorkommen eines Elements in einem Array entfernen (Null setzen)

Lassen Sie mich sagen, wenn ich alle Vorkommen von Mike auf Null setzen möchte. Ich habe versucht, die folgenden:

for (int i = 0; i < iTMembers.length; i++) { 
    if (iTMembers[i].equals(memberName)) { 
     iTMembers[i] = null; 
     break;        
    }    
} 

Das Problem jedoch ist, dass es nur setzt man Mike (String Literal-Element) auf null und der andere ist immer noch vorhanden. Was kann ich tun? Vielen Dank!

+0

Entfernen Sie 'break;'. – Gendarme

+0

Wenn Sie Pause entfernen, erhalten Sie eine Nullzeigerausnahme. – Linuxn00b

+0

Das Entfernen der Unterbrechung ergibt eine NullPointer-Ausnahme. Ich denke nicht, Exception Handling würde hier richtig funktionieren? – Linuxn00b

Antwort

1
  1. Entfernen Sie die break; Zeile, weil es Ihre Schleife nach dem ersten Austausch unterbricht.
  2. ändern

    if (iTMembers[i].equals(memberName)) 
    

    zu

    if (memberName.equals(iTMembers[i])) 
    

    denn wenn iTMembers[i]null ist, möchten Sie eine false Ergebnis, kein NullPointerException.

Verwandte Themen