2015-04-02 6 views
2

У меня есть следующий метод: getTeams(), который возвращает список команд List<Team> конкретной учетной записи (то есть, this.teams).
Я хочу, чтобы вернуть команды, которые активны только (find.where().eq("active",true))Java - возвращаемый список на основании условия

мне нужна список команд счетов, которые удовлетворяют условие (активные команды), но я не могу это сделать. Я имею в виду, что мне удалось вернуть либо this.teams, либо команды, которые активны. Итак, как я смогу их объединить? Любая помощь высоко ценится! Благодарю.

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

Что такое условие, чтобы вернуть один или другой –

+0

@kocko Но я снова? получил уведомление, сказав, что вы ответили на мой вопрос, и это сработало для меня! Но теперь я не вижу этого ответа? – Dee

+0

И проголосовать? Но почему? Могу ли я узнать причину? – Dee

ответ

2

Использование Java 8, вы можете сделать это с помощью одного оператора (при условии, у вас есть List<Team> в 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; 
+0

Я думаю, что мой не java 8, а 2 работал как шарм! Это на самом деле прекрасное решение, использующее для цикла. Я буду помнить об этом. Благодаря! – Dee

Смежные вопросы