2013-09-26 4 views
0

это то, что у меня есть до сих пор, и что я пытаюсь сделать, я не знаю, как получить доступ к обеим частям раскола, этот код действительно неправильный, но я не знаю, как делать то, что я хочу (да, это для школы)Ошибка карты с функцией

public class Relatives 
    { 
     private Map<String,Set<String>> map; 

     /** 
     * Constructs a relatives object with an empty map 
     */ 
     public Relatives() 
     { 
      map = new TreeMap<String,Set<String>>(); 
     } 

     /** 
     * adds a relationship to the map by either adding a relative to the 
     * set of an existing key, or creating a new key within the map 
     * @param line a string containing the key person and their relative 
     */ 
      public void setPersonRelative(String line) 
{ 
    String[] personRelative = line.split(" "); 

    if(map.containsKey(personRelative[0])) 
    { 
     map.put(personRelative[0],map.get(personRelative[1])+personRelative[1]); 
    } 
    else 
    { 
     map.put(personRelative[0],personRelative[1]); 
    } 
} 

им пытается получить доступ к человеку и добавить к там текущим родственникам и если не существует создать новый человек с этим относительной

как бы я форматировать его, чтобы он возвращается, как этот

Dot is related to Chuck Fred Jason Tom 
Elton is related to Linh 

у меня есть это, но получаю ошибку

public String getRelatives(String person) 
{ 
    return map.keySet(); 
} 

ответ

2

Вы не можете добавить элемент в набор с помощью оператора +=; вы должны использовать метод add.

Кроме того, вы должны создать набор в первый раз, когда собираетесь его использовать.

Фиксированный код может выглядеть следующим образом:

 String[] personRelative = line.split(" "); 
     String person = personRelative[0]; 
     String relative = personRelative[1]; 
     if(map.containsKey(person)) 
     { 
      map.get(person).add(relative); 
     } 
     else 
     { 
      Set<String> relatives = new HashSet<String>(); 
      relatives.add(relative); 
      map.put(person,relatives); 
     } 
Смежные вопросы