So habe ich ein Programm, das Mitarbeiterdaten wie ID #, Name, Startdatum, etc. gespeichert werden soll. Wenn der Benutzer eine Mitarbeiter-ID eingeben und drückt die Entfernen-Taste die Arraylist sollte gesucht und wenn diese Mitarbeiter ID in der Arraylist existiert, sollten alle Daten dieses Mitarbeiters aus der Arraylist gelöscht werden. Ich bin in der Lage, alle Daten hinzuzufügen und anzuzeigen, aber ich kann nicht herausfinden, wie die Arraylist für die ID-Nummer suchen und alle Daten des Mitarbeiters löschen. Jede Hilfe mit diesem würde geschätzt werden. Ich habe meinen Code bis jetzt für den Entfernungsbutton, sowie einigen anderen Code beigefügt, um zu zeigen, wie die Daten gespeichert werden.Entfernen Sie Daten aus Arraylist von Objekten
public class EmployeeRecords extends javax.swing.JFrame {
ArrayList <employees> employees = new ArrayList <employees>();
...
Schaltfläche Entfernen Code:
private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {
int index;
String id = idInput.getText();
boolean idCheck = employees.contains(id);
if (idCheck = true){
index = employees.indexOf(id);
employees.remove(index);
}
else {
errorLabel.setText("Employee not found. Please try again.");
}
}
Schaltfläche Code hinzufügen:
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
employees e;
String id, firstName, lastName, salary, startDate;
id = idInput.getText();
firstName = firstInput.getText();
lastName = lastInput.getText();
salary = salaryInput.getText();
startDate = dateInput.getText();
e = new employees(id, firstName, lastName, salary, startDate);
employees.add(e);
}
Mitarbeiter Klasse:
class employees {
String id, firstName, lastName, salary, startDate;
employees (String _id, String _firstName, String _lastName, String _salary, String _startDate) {
id = _id;
firstName = _firstName;
lastName = _lastName;
salary = _salary;
startDate = _startDate;
}
}
Überlagert die 'Employee' Klasse die' equals() 'Methode? Wenn nicht, wird 'contains()' nicht funktionieren. Auch die Verwendung desselben Namens für eine Klasse und eine Variable ist sehr schlecht. Ihre Mitarbeiterklasse sollte Mitarbeiter sein. Drittens ist eine "Liste" in keiner Weise "assoziativ". Dazu benötigen Sie eine 'Map', die einen Schlüssel mit einem Wert verknüpft. –