接口中的方法不能应用于给定的类型;带哈希图

我正在完成我大学教科书中的一些修订活动,并且一直停留在这个问题上。我们正在处理地图和列表,所提出的问题需要我检查团队地图中是否已经存在该部门的列表,然后将新团队添加到已经存在的部门中。

如果没有,则创建一个新的空列表并将新团队添加到其中,将部门分配为键,将新列表分配为值。

重新阅读材料几次后,我开始了解我需要做什么,但是当我编译它时,它给了我一个方法 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);

      }


   }     

}


慕少森
浏览 98回答 2
2回答

眼眸繁星

你有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

您的地图有签名private SortedMap<String, Set<String>> teams;您正在尝试插入一组Team对象。您需要将teams地图更改为Set<Team>.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java