Java Java Data Structures Efficiency! Using a Map to store Contact Methods

Gonzalo Torres del Fierro
PRO
Gonzalo Torres del Fierro
Pro Student 16,735 Points

i use the good idea from Yani Kapitanov...but still having one error:

It's always a good idea to create a new Map containing the results inside the method instead of using the HashMap directly from the class.

Try this:

Map<String ,String> result = mContactMethods; return result.keySet();

com/example/model/Contact.java
package com.example.model;

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

public class Contact {
  private String mFirstName;
  private String mLastName;
  private Map<String, String> mContactMethods;

  public Contact(String firstName, String lastName) {
    mFirstName = firstName;
    mLastName = lastName;
    /* This stores contact methods by name
     * eg:  "phone" => "(555) 555-1234"
     */
    mContactMethods = new HashMap<String, String>();
  }

  public void addContactMethod(String method, String value) {
    // TODO: Add to the contact method map
    mContactMethods.put(method, value);
  }

  /**
   * Returns the available contact methods.  eg: phone, pager,
   *
   * @return The name of the contact methods that are available
   */
  public Set<String> getAvailableContactMethods() {
    // FIXME: This should return the current contact method names.
    Map<String, String> result =mContactMethods;
    return result.KeySet();
  }

  /**
   * Returns the value for the contact method if it exists, 
   *
   * @param methodName  The name of the contact method to look up.
   * @return The name of the contact methods that are available
   */
  public String getContactInfo(String methodName) {
    // FIXME: return the value for the passed in *methodName*
    return null;
  }

  public String getFirstName() {
    return mFirstName;
  }

  public String getLastName() {
    return mLastName;
  }

}

2 Answers

Alexander Nikiforov
Alexander Nikiforov
Java Web Development Techdegree Graduate 22,123 Points

Fix the typo. method names always start with small letter, that's convention...

   return result.KeySet(); // fix the typo !!!
Gonzalo Torres del Fierro
PRO
Gonzalo Torres del Fierro
Pro Student 16,735 Points

can you believe...finally, the soluction given works perfectly,....any way i´ll keep learnign