功能映射错误

时间:2013-09-26 23:33:31

标签: java

这是我到目前为止,我想要做什么我不知道如何访问拆分这两个部分的代码是非常错误但我不知道如何做我想要的(是的,这是为了学校)< / p>

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();
}

1 个答案:

答案 0 :(得分: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);
        }