如何在程序中添加无限量的员工?

时间:2014-05-09 13:57:00

标签: java database eclipse list

这个想法是在程序中添加一名员工,然后在另一名员工中添加等等。

通过研究如何做到这一点,我遇到了

    public class Employee { 
        private String name; 
        private int Id; 

        public Employee(String empName, int empId) { 
            name = empName; 
            Id = empId; 
        } 
    }

    ...

    Employee Jack = new Employee("Jack",001);

我在教程和示例中遇到的所有代码都是将变量存储在实际的编程代码中,而不是在程序运行时存储。

然而,这不是我想要做的。我想通过用户输入输入名称并将其存储在程序中,以便保存输入的名称然后我希望能够添加另一个和另一个,所以最终我最终得到了一个用户输入的员工列表。

任何建议都会很棒

由于

4 个答案:

答案 0 :(得分:2)

选项1:

如果您只想在一次运行程序中保留员工列表,则可以将员工存储在某个数据结构(ArrayList,Map,Set)中。数据结构的选择取决于您要对此Employees集合执行的操作。

示例:使用列表

 List<Employee> employeeCollection = new ArrayList<Employee>(): 
 employeeCollection.add(new Employee("Kakarot" , 1));
 employeeCollection.add(new Employee("John Doe" , 2));

选项2: 如果您希望以一直可用的方式保留数据(即使您关闭程序然后再次启动它),您还有以下选项:

1)以某种人类可读的格式将数据存储在文本文件中。例如:

 Kakarot|33
 John Doe|2

现在,您的程序开始阅读此文件并构建所有以前插入的员工的列表。

2)将数据存储在某些数据库中,例如:Oracle,MySql等

3)将员工列表序列化到磁盘上的文件中。并在程序开始时读取文件。

答案 1 :(得分:1)

使用List,允许动态增长。

List<Employee> employeeList = new ArrayList<Employee>();
Employee employee;
employee = new Employee("Luiggi", 1);
employeeList.add(e);
employee = new Employee("user3620639", 2);
employeeList.add(e);
System.out.println(employeeList);

答案 2 :(得分:0)

看看Java Collections。您可以使用像Luiggi建议的列表,或者您可能想要使用Map,以便您可以按名称或Id查找它们。

import java.util.HashMap;
import java.util.Map;

public class Employee
{
  private final String name;
  private final int Id;
  private static Map<String, Employee> employeesByName = new HashMap<String, Employee>();
  private static Map<Integer, Employee> employeesById = new HashMap<Integer, Employee>();

  public Employee(String empName, int empId)
  {
    name = empName;
    Id = empId;
    employeesByName.put(name, this);
    employeesById.put(Id, this);
  }

  public static Employee getEmployeeByName(String name)
  {
    return employeesByName.get(name);
  }

  public static Employee getEmployeeById(int Id)
  {
    return employeesById.get(Id);
  }
}

答案 3 :(得分:0)

此问题的其他答案负责列表方面。至于用户输入,您有几个选择。

如果您想使用GUI方法,可以使用JOptionPane.showInputDialog获取用户输入:

public static void main(String[] args) {

    int i = 0;
    List<Employee> empList = new ArrayList<Employee>();

    do {
        String username = JOptionPane.showInputDialog("Insert new employee name");
        i++;

        empList.add(new Employee(username, i));
    } while (/*some condition for continued execution*/);

    System.out.println(empList);
}

如果您只使用基于文本的命令行界面,则可以使用BufferedReader

public static void main(String[] args) {
    int i = 0;
    List<Employee> empList = new ArrayList<Employee>();
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    do {
        String username = reader.readLine();
        i++;

        empList.add(new Employee(username, i));
    } while (/*some codition for continued execution*/);

    System.out.println(empList);
}