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

1 回答 1

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);
        }
于 2013-09-26T23:39:02.300 回答