我正在完成我大学教科书中的一些修订活动,并且一直停留在这个问题上。我们正在处理地图和列表,所提出的问题需要我检查团队地图中是否已经存在该部门的列表,然后将新团队添加到已经存在的部门中。如果没有,则创建一个新的空列表并将新团队添加到其中,将部门分配为键,将新列表分配为值。重新阅读材料几次后,我开始了解我需要做什么,但是当我编译它时,它给了我一个方法 put interface.java.util.Map 错误。哪个解释提供您在此处使用的运算符不能用于您使用它的值的类型。您要么在这里使用了错误的运算符,要么使用了错误的运算符。我重新阅读了材料,在线研究,甚至购买了 udemy 课程来了解地图及其工作原理。查看过去的试卷有所帮助,据我了解,问题在于第 33 行的 .put 操作,但我所阅读的所有内容都是在使用地图时,.put 是您向地图添加信息的方式。所以我不知道为什么我会收到这个错误。无奈之下,查看了与我相同的过去考试答案,并测试了他们编译的代码,没有错误。我非常想了解为什么而不是查看材料的背面并仅查看答案,因为这是为了修订。我们要修改的 LeagueAdmin() 类的代码如下import java.util.*;public class LeagueAdmin{ private SortedMap<String, Set<String>> teams; /** * Constructor for objects of class LeagueAdmin */ public LeagueAdmin() { // Create the HashMap //Map<String, Team> teams = new HashMap<>(); super(); this.teams = new TreeMap<>(); } public void addTeam(String division, Team team) { boolean changed; if (!this.teams.containsKey(division)) // checks if the key division doesn't contain the value of divsioin { HashSet<Team> teamSet = new HashSet<>(); // instantiates a list of objects called Team and assigns them to local variable teamSet teamSet.add(team); // adds a new team to the list this.teams.put(division, teamSet); changed = true; } else { Set<Team> teamSet = this.teams.get(division); // if list exists already adds new team to existing list changed = teamSet.add(team); } } }
2 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
你有
private SortedMap<String, Set<String>> teams;
但然后尝试将 aSet<Team>放入其中
HashSet<Team> teamSet = new HashSet<>(); // instantiates a list of objects called Team and assigns them to local variable teamSet
...
this.teams.put(division, teamSet);
将您的更新teams为 aMap<String, Set<Team>>或将其更改teamSet为Set<String>.
大话西游666
TA贡献1817条经验 获得超14个赞
您的地图有签名private SortedMap<String, Set<String>> teams;
您正在尝试插入一组Team
对象。您需要将teams
地图更改为Set<Team>
.
添加回答
举报
0/150
提交
取消