どのように別のsreamに含まれていない1つのストリームから文字列をフィルタリングするには?

Trillianの:

私のような文字列の2つのストリームを持っています:

Stream<String> thisWeekFile = Files.lines(thisWeekPath);
Stream<String> lastWeekFile = Files.lines(lastWeekPath);

先週と比較して、この週のファイルには、同じ文字列の追加、いくつかの文字列または削除、いくつかの文字列を持つことができます。今の私はこれ以上、この週のファイルの最後の週のファイルに存在していたではなく、文字列に興味があります。どのように私はこれらの文字列を得るのですか?私は試した

lastWeekFile.filter(e->!thisWeekFile.anyMatch(e)); 

エラーを与えて上記:文字列は述語に変換することはできません。

Idealy私のような何かをしたいです

lastWeekFile.filter(e->!thisWeekFile.contains(e));
ルスラン:

使用するFiles.readLines()代わりに、ストリームのリターンリストは、それがストリームAPIなしで行うことができるという方法を:

List<String> thisWeekFile = Files.readAllLines(thisWeekPath);
List<String> lastWeekFile = Files.readAllLines(lastWeekPath);

lastWeekFile.removeAll(thisWeekFile);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=201653&siteId=1