Dynamic filtering conditions in Lambda

Daniel Sachse mail at wombatsoftware.de
Fri Oct 11 23:02:56 PDT 2013


Wow nice! That was easier than I thought!
Lambdas are AWESOME! :)

--

Wombat Software Technologies UG (haftungsbeschränkt)
Im MediaPark 5
D-50670 Köln

Geschäftsführer: Daniel Sachse, Jacob Pawlik
Unternehmenssitz: Köln
Handelsregister beim Amtsgericht: Köln
Handelsregister-Nummer: HRB 79316

Web: http://www.wombatsoftware.de
Email: mail at wombatsoftware.de
Tel.: 0221/16905638
Mobil: 01578/4922886


2013/10/12 Brian Goetz <brian.goetz at oracle.com>

> How about:
>
>   name.stream()
>       .filter(n -> startsWith.stream().anyMatch(s -> n.startsWith(s)))
>       ...
>
>
> On 10/11/2013 6:25 PM, Daniel Sachse wrote:
>
>> Hey guys,
>>
>> I having the following working Java 8 code:
>>
>> List<String> names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara",
>> "Sam", "Sara", "Jil", "Brenda");
>>
>> List<String> result = names.stream().filter(name -> name.startsWith("K"))
>>
>>                  .filter(name -> name.length() == 3)
>>                  .collect(toList());
>>
>> ============
>>
>> Now I change it to use multiple possible first letters and lenghts:
>>
>> List<String> result = names.stream().filter(name -> name.startsWith("K")
>> ||
>> name.startsWith("B"))
>>
>>                  .filter(name -> name.length() == 3 || name.length() == 4)
>>                  .collect(toList());
>>
>>
>> ============
>>
>> Now I want to rewrite this and use a dynamic list of starting letters and
>> a
>> dynamic list of length attributes, but I totally got stuck on how to
>> implement this :
>>
>> List<String> names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara",
>> "Sam", "Sara", "Jil", "Brenda");
>>
>> *List<String> *startsWith* = Arrays.asList("B", "K", "S");*
>> *List<Integer> *length* = Arrays.asList(2, 3, 4);*
>>
>>
>> List<String> result = names.stream().
>> // Filters missing
>>
>>                  .collect(toList());
>>
>>
>> ============
>>
>> I would be really glad if you could provide me with a solution how this
>> could be implemented using Lambdas :)
>>
>>
>> Thanks in advance!
>>
>> Daniel
>>
>> --
>>
>>
>> Wombat Software Technologies UG (haftungsbeschränkt)
>> Im MediaPark 5
>> D-50670 Köln
>>
>> Geschäftsführer: Daniel Sachse, Jacob Pawlik
>> Unternehmenssitz: Köln
>> Handelsregister beim Amtsgericht: Köln
>> Handelsregister-Nummer: HRB 79316
>>
>> Web: http://www.wombatsoftware.de
>> Email: mail at wombatsoftware.de
>> Tel.: 0221/16905638
>> Mobil: 01578/4922886
>>
>>


More information about the lambda-dev mailing list