の要素を確認して取得する方法を知りたい場合は、Map
を参照してください。 Java 8バージョン - 条件付きリストのマップ
private Map<User, List<Offer>> shops = new ConcurrentHashMap<>(32);
//how to write this?
public List<Offer> getOffersOlderThan(int seconds){
return this.shops.values().stream().forEach(
x->x.stream()
.filter(y-> MyTime.currentTime.minusSeconds(seconds)
.isBefore(y.getOfferBegin()))
}
は、私はすでに
filter
代わりに、最初の
forEach
を使用しようとしましたが、それはどちらか動作しませんでした。
すべてOffer
のList
のうち、Timestamp
がcurrentTime - seconds
より前に取得されたいと考えています。
Java 8で汎用リストを返すにはどうすればよいですか? 例:すべてのオファーについては
public List<Offer> getOffersByUser(User u){
return this.shops.entrySet().stream().filter(x->x.getKey().getId()==u.getId())
.collect(List::new) //how to parameterize?
}
どのようにちょうど使用について 'this.shops.get(U)特定のユーザーのオファーを取得するには?それがマップのすべてです。 –
forEach()はvoidを返します。したがって、forEach()が返すものについては、どのメソッドも呼び出すことはできません。いくつかのドキュメントを読む必要があります。 –
@jbn AFAICT OPは* all *のユーザーからのオファーを希望します – Bohemian