![]() |
1
82
这个
C 3.0允许开发人员使用多种方法将谓词传递给
lambda表达式
匿名方法
常规方法
|
![]() |
2
15
t中的谓词是接受t并返回bool的委托。list<t>。remove all将删除调用谓词返回true的列表中的所有元素。提供简单谓词的最简单方法通常是 lambda expression ,但您也可以使用 anonymous methods 或实际方法。
|
![]() |
3
6
这应该有效(在哪里
它的作用是将列表中的每个车辆传递到lambda谓词中,对该谓词进行计算。如果谓词返回真(即
如果您知道集合中对象的类型,那么使用通用集合是一种更好的方法。从集合中检索对象时,它避免强制转换,但如果集合中的项是值类型(这可能导致性能问题),它还可以避免装箱。 |
![]() |
4
1
有点偏离主题,但我想从列表中删除所有2。这是一个非常优雅的方法。
谓语:
+1只是为了鼓励你把答案留在这里学习。你也说得对,这不是主题,但我不会因为这个而责备你,因为把你的例子放在这里,再次,严格地用于学习目的,是有重要价值的。我将此回复作为编辑发布,因为将其作为一系列评论发布是不守规矩的。 虽然您的示例简短紧凑,但在效率方面也不优雅;第一个示例在O(n)方面不好 二 ,第二个,在O(N)绝对糟糕 三 )O(n)的算法效率 二 )是坏的,应该尽可能避免,特别是在通用代码中;O(N)的效率 三 )很可怕,在任何情况下都应该避免,除非你知道n总是很小。有些人可能会抛出他们的“过早的优化是所有邪恶的”战斗轴的根源,但他们这么做并不明智,因为他们并不真正理解二次增长的后果,因为他们从未编码算法,必须处理大数据集。因此,他们的小数据集处理算法的运行速度一般比他们所能运行的慢,他们不知道他们能运行得更快。高效算法和低效算法之间的差异通常很细微,但性能差异可能很大。了解算法性能的关键是了解选择使用的原语的性能特征。
在第一个例子中,
你的第二个例子更糟:o(n
三
因为每次你打电话
从与某个谓词匹配的列表中删除所有项的最佳方法是使用泛型列表的
|
![]() |
5
1
我想谈谈迄今为止所有答案都没有的问题:
假设
删除具有特定查询ID的所有车辆仍然需要以这种方式迭代所有元素,因此可以考虑
在这种情况下,更好的选择是
|
![]() |
Aliaksei · CriteriaBuilder选择多个 8 年前 |
![]() |
Nimrod · Java8-如何使用带有参数的函数的谓词? 9 年前 |
![]() |
user3748908 · 正确使用两种类型的番石榴谓词 10 年前 |
![]() |
Aaron Roller · 将番石榴范围转换为不同类型 11 年前 |