Eri*_*uth 15 java lambda list java-8
我正在寻找最简洁的方法来过滤Java-8中的列表,使用简单的lambda Predicate,而无需创建新列表.
特别是,这个解决方案不适合,因为toList()返回一个新的List:
List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
请注意,以下解决方案也不起作用,因为列表应该是clear()其原始值的ed(但显然,如果在过滤之前清除它,则没有任何内容可以过滤...):
persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));
Run Code Online (Sandbox Code Playgroud)
(另外,我更喜欢不涉及使用第三方库或框架的解决方案)
JB *_*zet 25
beerDrinkers.removeIf(p -> p.getAge() <= 16);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4493 次 |
| 最近记录: |