【问题标题】:how to return HashSet from a method?如何从方法中返回 HashSet?
【发布时间】:2014-12-02 09:42:15
【问题描述】:

我一直在苦苦思索如何调用HashMap 和HashSet 中存储的数据,以及返回存储在其中的值、大小以及数据的方法是什么?

public HashSet <Room>  getOccupiedrooms(){
    return occupiedRooms.size();
}

这不能编译,所以我不太确定。并将存储的数据返回。

干杯

【问题讨论】:

  • "and this dosent compile" 是 size() 返回集合中元素的数量,而不是集合本身。快速浏览一下文档会给你答案,为什么它不能编译。
  • 那么我将如何返回存储在其中的值
  • 不知道occupiedRooms的数据类型是什么,所以无法回答,只能猜测了。
  • 此问题中没有足够的信息使其有用。以目前的形式,提供任何形式的答案都是不可能的。提供某种答案的人都应该被否决。投票结束。
  • 好吧,您需要至少向我们展示occupiedRooms 的声明,然后才能得到任何人的帮助。

标签: java return return-value hashset


【解决方案1】:

您需要迭代您的哈希集,检查每个房间是否被占用并将房间添加到不同的哈希集。

public HashSet<Room>  getOccupiedrooms(){
HashSet<Room> tempSet = new HashSet<Room>();
// iterate start
// if room is occupied, add room to tempSet
// iterate end
// return tempSet

【讨论】:

    【解决方案2】:

    让我们假设occupredRooms 是一个HashSet。所以只需删除 .size();,在您的代码中,您将返回 HashSet 的大小。

    public HashSet <Room>  getOccupiedrooms(){
        return occupiedRooms;
    }
    

    所以你可以得到它的大小:

    getOccupiedrooms().size();
    

    【讨论】:

      【解决方案3】:

      很难看出困难是什么。只需返回 HashSet 本身:

      return occupiedRooms;
      

      【讨论】:

        【解决方案4】:

        如果您像我一样不知道它不能在 if 语句中返回,那么这可能是您的问题。只需将 return 语句放在函数中的 if 语句之外。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-25
          • 2014-11-20
          相关资源
          最近更新 更多