0

以下のようなカスタム オブジェクトのリストがあります。

List<CustomObject> existingValues

そして、クライアントから送信された ID を持つ別のコレクションで、上記の CustomObject の ID が含まれていますSet<Long> ids

私の目標は、id が交差する要素のみを含む CustomObject でコレクションを返すことです。

これは、サイクルごとにネストされたもので簡単に実行できます。しかし、それは少し醜く見えます。

SQLでは、クエリで同様のことができます:

select * where customobject.id in (some ids...)

またはでどのように達成できますlamdajguava

4

4 に答える 4

1

Java 8 では、ストリーム フィルターを使用してこれを実現できます。

List<CustomObject> collect = existingValues.stream()
.filter(object -> ids.contains(object.getId()))
.collect(Collectors.toList());

Javaストリームに慣れるには、公式のOracleチュートリアルをお勧めします。

于 2015-05-06T07:58:47.950 に答える