1、输入一个文本文件,一行一条记录,有三个属性:id,name,salary,由逗号隔开; 2、逐行读取记录,将记录存放在SalariedEmployee对象中,所有记录存放于SalariedEmployeeList容器中,并提供根据name搜索记录的方法。
// 1.读取文本文件 SalariedEmployeeList employeeList = new SalariedEmployeeList(); try(BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("your text file path")))) { String line = null; while ((line = br.readLine()) != null) { // line为空或者记录不够就略过 if(line.isEmpty()) { continue; } String[] fields = line.split(","); if(fields.length() != 3) { continue; } SalariedEmployee employee = new SalariedEmployee(Integer.parseInt(fields[0], fields[1], Double.parseDouble(fields[2]); employeeList.add(employee); } } // SalariedEmployeeList类 // 从题主问题描述中没有看到这个类的声明,大体理解题主想要的意思是这个类本身就是一个容器, // 可以容纳SalariedEmployee对象,最后提供一个根据name来查询Employee的方法,因此我就直接 // 将SalariedEmployeeList继承LinkedList,这样实现起来最快。 public class SalariedEmployeeList extends LinkedList<SalariedEmployee> { // 其他代码省略... // 根据name进行SalariedEmployee查询 public SalariedEmployee findByName(String name) { for(SalariedEmployee employee : this) { if(employee.getName().equals(name)) { return employee; } } // 没有找到返回null return null; } }
showtooltip整理