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

Jack Cummins
Jack Cummins
17,399 Points

I don't understand why my code is wrong. I give out best answer and upvote if you give me a good answer.

Task 3 of 3: For this task, let's fix the getContactInfo method.

Thanks! Jack

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) {

  }

  /**
   * Returns the available contact methods.  eg: phone, pager,
   *
   * @return The name of the contact methods that are available
   */
public Set<String> getAvailableContactMethods() {
    return mContactMethods.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 mContactMethods.add(methodName);
  }

  public String getFirstName() {
    return mFirstName;
  }

  public String getLastName() {
    return mLastName;
  }

}

1 Answer

Brendon Butler
Brendon Butler
4,228 Points

Looking at your getContactInfo method, you're trying to access the add method from a Map type. There is no add method for Maps, instead you would use the put method.

Not only that, but the put method is a void type. So you're trying to return a void. Instead your return line should look like this (I assume you wanted the get method):

return mContactMethods.get(methodName);

Feel free to have a look at all the methods in the Map data type here.