PK:
フィードバックは次のようになります。
public FeedbackTable(String clusterKey, Date eventStartTime, String user, Date feedbackReceivedTime, int feedback)
{
this.id=clusterKey;
this.user=user;
this.feedback=feedback;
this.feedbackReceivedTime=feedbackReceivedTime;
this.eventStartTime = eventStartTime;
}
私はこれらのフィードバックのリストを取得し、私は、各ユーザーのための唯一の最新feedbackReceivedTimeを持っているフィードバックのリストが欲しいです。
私は、フィードバックリストを反復してユニークユーザーを検索し、各ユーザーの反復処理のためのフィードバックリストの上に最新のフィードバックを得ることが、それは少なくとも順序ではありませんすることができます。
パベル・スミルノフ:
ここでは、ストリームAPIを使用してそれを行うにはどのような方法があります:
List<FeedbackTable> feedbacks = ...; // your list of feedbacks
List<FeedbackTable> latestUsersFeedbacks
= feedbacks.stream()
.collect(Collectors.toMap(f -> f.user,
f -> f,
(f1, f2) -> f1.feedbackReceivedTime.after(f2.feedbackReceivedTime) ? f1 : f2))
.values().stream().collect(Collectors.toList());