2013-09-26 137 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); 
     }