这一切都很好:
// ActorDao
public Optional<Actor> read(long id) {
return Optional.ofNullable(actors.get((int) id));
}
public List<Actor> readAll() {
// Return a list of actors from db
}
// Demo
public static Actor getActor(String firstName, String lastName) {
Dao<Actor> actorDao = new ActorDao();
long id = 0;
for (Actor actor : actorDao.readAll()) {
if (firstName.equalsIgnoreCase(actor.getFirstName()) && lastName.equalsIgnoreCase(actor.getLastName())) {
id = actor.getId() - 1; // actor_id in db starts at 1
return actorDao.read(id).get();
}
}
return null;
}
Java8+ 中更优雅的方式是什么?
最佳答案
return actorDao.readAll()
.stream()
.filter(actor -> firstName.equalsIgnoreCase(actor.getFirstName()))
.filter(actor -> lastName.equalsIgnoreCase(actor.getLastName()))
.map(actor -> actorDao.read(actor.getId() - 1).get())
.findFirst()
.orElse(null);
关于java - 使用 lambda 返回列表中的匹配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57367506/