Предполагая, что файл выглядит следующим образом:
First Last Salary
----- ---- -----
John Doe 78
Brad Snow 98
Bill Rosnow 101
Я бы создал некую структуру данных для хранения каждой строки данных, как объект класса Employee
public class Employee {
private String First;
private String Last;
private double salary;
// constructor, setters, getters down below
}
Тогда вы читаете каждую строку данных и сохраняете содержимое в объекте и добавляете его в свой ArrayList
ArrayList<Employee> dataArray = new ArrayList<Employee>();
// pseudo code here
while(Not End of File) {
// Parse file line contents and separate into local variables
Employee dataLine = new Employee(firstNameFromFile, LastNameFromFile, salaryFromFile);
dataArray.add(dataLine);
}
Таким образом, я бы сохранял данные из файла в ArrayList. Теперь для поиска в вашем массиве, это зависит от того, насколько эффективным вы хотите, чтобы ваш алгоритм был. Вы можете выполнить простой линейный поиск, который называется O (n), итерируя по каждому объекту в списке массивов. Для l oop это можно сделать следующим образом:
for(Employee employee : dataArray) {
if(employee.getLastName() == searchingName) return employee;
}
Теперь можно сделать то же самое для указанной зарплаты, но вы можете сохранить найденные объекты Employee в другом ArrayList; Таким образом, вы можете получить всех сотрудников, чья зарплата выше указанной суммы:
ArrayList<Employee> employeesFound = new ArrayList<Employee>();
for(Employee employee : dataArray) { // Don't forget that dataArray holds all the Employee objects
if(employee.getSalary() > userSpecifiedSalary) employeesFound.add(employee);
}
return employeesFound;
Надеюсь, это поможет!