【问题标题】:Java - Returning List based on conditionJava - 根据条件返回列表
【发布时间】:2015-06-06 23:50:56
【问题描述】:

我有以下方法getTeams(),它返回特定帐户的团队列表List<Team>(即this.teams)。
我想返回仅处于活动状态的团队 (find.where().eq("active",true))

我需要满足条件的帐户的团队列表(活跃团队),但我无法做到。我的意思是我能够返回this.teams 或活跃的团队。那么我将如何将这些结合起来呢?任何帮助深表感谢!谢谢。

public List<Team> getTeams() {
    return Team.find.where().eq("active", true).findList();
    //return this.teams;
}

【问题讨论】:

  • 返回一个或另一个的条件是什么?
  • @kocko 但我刚刚收到一条通知,说你已经回答了我的问题,这对我有用!但现在我看不到那个答案?
  • 投反对票?!但为什么?请问可以知道原因吗?
  • 我没有删除答案。我删除它是因为我认为返回一个或另一个列表是有条件的。
  • @kocko 条件/标准是,方法应该返回特定帐户的活跃团队!您已经理解了我的问题并提供了解决方案!但是你为什么现在删除它?

标签: java list return


【解决方案1】:

使用 Java 8,您可以使用一条语句来完成(假设您有一个 List&lt;Team&gt; 作为 teams 并且 Team 类型有一个 .isActive() 方法:

return this.teams.stream()
                 .filter(Team::isActive)
                 .collect(Collectors.toList());

但是,如果您使用的是一些较旧版本的 Java,您可以这样做:

List<Team> result = new ArrayList<Team>();
for (Team team : this.teams) {
    if (team.isActive()) { 
        result.add(team);
    }
}
return result;

【讨论】:

  • 我认为我的不是 java 8,但 2nd 就像一个魅力!这实际上是使用 for 循环的一个很好的解决方案。我会记住这一点。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多