0

私は現在従業員ストアを書いていますが、ストアの内容を削除できる必要があります。

どうすればいいですか?

キーを使用して削除する remove メソッドが既にあります。しかし、インターネットでこのコードを見つけたので、その使用方法がわかりません。

これが私のコードです:

メインアプリ

public class MainApp
{

    public static void main(String[] args)
    {
        new MainApp().start();

    }
    public void start()
    {
        EmployeeStore Store = new EmployeeStore();
        Store.add(new Employee ("James O' Carroll", 18,"hotmail.com"));

        Store.add(new Employee ("Andy Carroll", 1171,"yahoo.com"));

        Store.add(new Employee ("Luis Suarez", 7,"gmail.com"));
        Store.print();
        Store.clear();
        Store.print();

        Store.add(new Employee ("James O' Carroll", 18,"hotmail.com"));

        Store.add(new Employee ("Andy Carroll", 1171,"yahoo.com"));

        Store.add(new Employee ("Luis Suarez", 7,"gmail.com"));

        Store.print();
        Store.remove();


    }

}

EmployeeStore

//Imports.
import java.util.HashMap;
//********************************************************************
import java.util.Map;

public class EmployeeStore 
{
    HashMap<String, Employee> map;

//Constructor.  
    public EmployeeStore()
    {
        map = new HashMap<String,Employee>();
    }
//********************************************************************
//Hashmap Methods.
//Add to the Hashmap : Employee.
    public void add(Employee obj)
    {

        map.put(obj.getEmployeeName(), obj);
    }
//********************************************************************
//Remove from the Hashmap : Employee.
    public void remove(String key)
    {
      //Remove the Employee by name.
        map.remove(key);
    }
//********************************************************************
//Clear the Hashmap : Employee.
    public void clear()
    {
        map.clear();
    }
    //********************************************************************
//Print the Hashmap : Employee. 
    public void print()
    {
        System.out.println("\n********Employee's in the Company.********");
        for (Employee employee : map.values())
        {
            System.out.println("Employee Name:\t" + employee.getEmployeeName());
            System.out.println("Employee Id:\t" + employee.getEmployeeId());
            System.out.println("E-mail:\t"+ employee.getEmployeeEmail());
        }

    }


//********************************************************************  
//********************************************************************


}

従業員

//Imports:

//********************************************************************
//Employee Class.
public class Employee
{
//Variables.
    private String employeeName;
    private int employeeId;
    private String employeeEmail;
//********************************************************************  
//Constructor.
    public Employee(String employeeName, int employeeId, String employeeEmail) 
    {
        this.employeeName = employeeName;
        this.employeeId = employeeId;
        this.employeeEmail = employeeEmail;
    }
//********************************************************************
//Getters.
    public String getEmployeeEmail() {
        return employeeEmail;
    }
    public void setEmployeeEmail(String employeeEmail) {
        this.employeeEmail = employeeEmail;
    }
    public String getEmployeeName() {
        return employeeName;
    }
    public int getEmployeeId() {
        return employeeId;
    }
//********************************************************************
//toString method.
    public String toString() {
        return "Employee [employeeName=" + employeeName + ", employeeId="
                + employeeId + ", employeeEmail=" + employeeEmail + "]";
    }
//********************************************************************





}
4

2 に答える 2

1

aをEmployeeStore使用しHashMapて従業員を格納します。すべての従業員は、マップ内の名前で識別されます。従業員を削除するには、電話するだけですEmployeeStore.remove(String employeeName)

EmployeeStore employeeStore = new EmployeeStore();
employeeStore.add(new Employee ("James O' Carroll", 18,"hotmail.com"));
employeeStore.add(new Employee ("Andy Carroll", 1171,"yahoo.com"));
employeeStore.add(new Employee ("Luis Suarez", 7,"gmail.com"));

// Remove a certain employee
employeeStore.remove("Andy Carroll");

// Remove all employees
employeeStore.clear();

注意すべき点が 2 つあります。

1 - 現在の実装では、名前がマップ内のキーとして使用されているため、2 人以上の従業員が同じ名前を持つことは許可されていません。

2 - メソッドを呼び出すときはremove、正確な名前を指定する必要があります。これStringは、Java の等価性では大文字と小文字が区別されるためです。

も参照してくださいMap

于 2012-06-23T20:25:42.253 に答える
0

A. この問題を解決するために HashMap の remove メソッドを使用しないのはなぜですか?
B. さらに、いくつかの基準で削除を実行したい場合があります。このためには、セクション A で述べたように、マップを繰り返し、関連するエントリを見つけ、そのキーを取得し、remove を呼び出す必要があります。

于 2012-06-23T20:26:35.207 に答える