Я делаю проект, в котором моя программа должна читать из текстового файла определенную информацию о сотрудниках (идентификатор, имя и фамилия, дата, годовой оклад и т. Д.) Я создал класс сотрудников, а также методы hashCode
и equals
, а также все геттеры, сеттеры, объявления переменных и многое другое.
Проблема, с которой я столкнулся, - это основной класс. Вот мой код:Отображение ArrayLists с удаленными полями
public static void main(String[] args) throws FileNotFoundException {
ArrayList<Employee> db = new ArrayList<>();
try {
Scanner fin = new Scanner(new File("employeeDB.txt"));
} catch (FileNotFoundException e) {
System.out.println(e);
}
Scanner fin = new Scanner(new File("employeeDB.txt"));
while (fin.hasNextLine()) {
String line = fin.nextLine();
String[] fields = line.split(",", 0);
Employee emp = new Employee(Integer.parseInt(fields[0]), fields[1],
fields[2], fields[3], fields[4], Integer.parseInt(fields[5]),
Boolean.parseBoolean(fields[6]), fields[7], fields[8],
Double.parseDouble(fields[9]), fields[10]);
db.add(emp);
}
listAllEmployee(db);
System.out.println("");
listAllEmployeeEidAndName(db);
}
public static void listAllEmployee(ArrayList<Employee> list) {
System.out.println("List all employees:");
for (Employee emp : list) {
System.out.println(emp);
}
}
public static void listAllEmployeeEidAndName(ArrayList<Employee> list) {
System.out.println("List all empoyee eid and name:");
for (Employee emp : list) {
System.out.println("Employee{eid=" + emp.getEid()
+ ", firstName=" + emp.getFirstName()
+ ", lastName=" + emp.getLastName());
}
}
public static void listEmployeeByField(ArrayList<Employee> list,
int field) {
}
Я не уверен, как это сделать последнему методу. Единственная идея, которую я имел, заключалась в том, чтобы написать огромный оператор switch аналогичным образом, который я сделал для метода listAllEmployeeEidAndName
, но это кажется непрактичным.
Есть ли способ удалить поля и отобразить только тот, который задан при вызове метода listEmployeeByField
?