löschen eines Objekts aus einem array [java]

Mein Programm fragt den Benutzer zur Eingabe des Vornamen, Nachnamen und das Alter von 5 Personen und speichert Sie in einem array. Ich will schreiben Sie eine Methode, die fragt den Benutzer, den Sie löschen möchten, aus dem array und löscht dann diesen Mitarbeiter. Ich weiß, in arrays, die Sie technisch nicht das löschen eines Objekts aus einem array, nur ersetzen.
Dies ist, was ich bisher getan habe:

private void deleteEmployee(){

       Scanner scan = new Scanner(System.in);
       System.out.println("Enter the first name of the employee you want to delete from the list")
      String name = scan.nextLine();

       for (int i = 0; i < employees.length; i++) {
           if (employees[i].getFirstName().equals(name)){
               employees[i] = employees[employees.length - 1];
             break; 
           }

           if (i == employees.length - 1) {
               System.out.println("That requested person is not employed at this firm.")
       }


}

Mein problem ist, dass es nicht sinkt die array-Größe von 1, nur es ersetzt die person, die ich löschen möchte, mit der letzten person, die in meinem array. Meine Ausgabe hat die letzten Mitarbeiter in dem array zweimal wiederholt (in seiner letzten index und der index der person, die wollte ich löschen) Wie kann ich dieses Problem beheben?

  • Können Sie mutable collections wie eine verkettete Liste oder array notwendig?
  • Naja, man kann nicht wirklich löschen Sie ein element aus einem array, wie Sie sagte. Am besten Sie hoffen kann, ist zu geben, das entfernte element ein null-Wert statt. So ist es leer. Oder Sie könnte alternativ stellen Sie ein neues array mit length-1 Elemente und kopieren Sie alle gewünschten Elemente, um das array.
  • Sie können nicht ändern die Größe eines Arrays einmal erklären Sie es. Sollten Sie gehen mit etwas, das wie ein array-Liste.
  • Wenn Sie nichts dagegen haben, dass null-Werte im array, set-Mitarbeiter[i] auf null, nicht zu der Letzte Angestellte. Dies wird helfen, überschneidungen zu vermeiden.
InformationsquelleAutor user3452963 | 2014-03-28
Schreibe einen Kommentar