2015-04-02 59 views
2

我有下列方法getTeams(),它返回特定账户(即this.teams)的团队List<Team>的清单。
我想返回活跃的球队只(find.where().eq("active",true)Java - 基于条件的退货清单

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

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

什么是条件返回这一个或其他? – 2015-04-02 06:01:41

+0

@ kocko但我只是收到通知说你已经回答了我的问题,这对我有用!但是现在我看不到那个答案了? – Dee 2015-04-02 06:04:22

+0

然后投票下来?但为什么?我可以请知道原因吗? – Dee 2015-04-02 06:06:22

回答

2

使用Java 8,你可以用一个语句做(假设你有一个List<Team>teamsTeam类型有一个.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; 
+0

我认为我的不是java 8,但第二个工作就像一个魅力!这实际上是一个使用for循环的优秀解决方案。我会牢记这一点。谢谢! – Dee 2015-04-02 06:12:00