2016-09-20 2 views
-3

コレクションタイプでは、自動補完のシナリオを作成する必要があります。Java 8 Streams APIを使用してコレクションに「Contains」という種類のクエリが含まれています

私たちは、オブジェクトのリストが従業員を言うことができます。今では、 "man"とタイプするたびに、名前と電子メールIDに "man"を持つすべての従業員オブジェクトを返す必要があります。

これをJAVAでどのように実現できますか?私はLAMDBAと述語機能について聞いたことがありますが、どのようにそれらを私たちのrequrimentに使うことができるかは確かです。

どのように私たちはこれを達成することができます提案することができます。

+0

'emails.stream()フィルタ - answer.Wantedのおかげでチェックし、(S> s.contains( "男"))' –

答えて

2

あなたはStreamを使用することができます。

List<Employee> list = ... // Initialize the list. 
List<Employee> filterdList = list.stream() 
    .filter(emp->emp.getName().contains("man")) 
    .filter(emp->emp.getEmail().contains("man")) 
    .collect(Collectors.toList()); 
+0

こんにちはデビッド。どのようにこれらの2つのフィルタリングされた条件が働くでしょうか??それはORとANDの述語条件になりますか? –

+0

これは常にANDです。 'filter'メソッドは、述語と一致する要素を持つ' Stream'を返します。二つの条件の一つに合致する要素を望むなら、 '.filter(emp-> emp.getName()。contains(" man ")|| emp.getEmail()。contains(" man "))'。また、 'filter'メソッドによって予期されるパラメータは' Predicate'で、 'Predicate'インタフェースは[or](https://docs.oracle.com/javase/8/docs/api/java/util/)です。 function/Predicate.html#or-java.util.function.Predicate-)メソッドを使用して、2つの述語のORで合成「述語」を取得したい場合に使用します。 –

関連する問題