0

ユーザー入力を従業員クラスの内容にどのように一致させるのか疑問に思っています。

public void searchByName ()
{
    //and check for each employee if his/her email matches the searched value
    for(Employee e : map.values())
    {
        System.out.println(e); //Will print out Employee toString().
    }
}
4

1 に答える 1

1

従業員のマップを使用している理由はわかりませんが、適切な getter を使用してメール アドレスが Employee クラス内に String オブジェクトとして格納されていると仮定するとgetEmail()、コードは次のようになります。

public Employee findEmail( String email )
{
    for( Employee e : map.values() )
    {
        if( email.equals( e.getEmail() ) )
            return e;
    }
    return null;
}

ただし、このコードはマップ内のすべての従業員をループする必要があるため、あまり効率的ではありません。

get( Object key )ただし、マップに従業員への電子メール アドレスのマッピングが含まれている場合は、マップのメソッドを使用して、電子メール アドレスに関連付けられた従業員を非常に迅速に取得できます。

Employee emp = map.get( "someone@somedomain.com" );

if( emp != null )
    System.out.println( "Employee with that email address is " + emp );
else
    System.out.println( "No Employee with that email address." );

これが役立つことを願っています。補足として、より多くのコード (Employee クラスなど) を投稿すると、ソリューションがより正確で役立つものになることは間違いありません。

于 2012-06-30T15:45:02.433 に答える