Java 在一组元素中选择,所有满足条件的元素
假设我有一个包含一些元素的列表,我想选择所有不满足特定条件的元素。我在想这样的事情:Java 在一组元素中选择,所有满足条件的元素,java,Java,假设我有一个包含一些元素的列表,我想选择所有不满足特定条件的元素。我在想这样的事情: public void choose(Condition c) { choose all elements that satisfy c.CheckCondition(elem) } 然而,我认为这是非常不合法的,它迫使用户使用 检查元素是否满足条件的特定函数。 如果是C++,我会把一个函数的指针作为一个参数发送,但在java中是不可能的。 我曾考虑过使用Comparable对象,但这并不好,因为我
public void choose(Condition c) {
choose all elements that satisfy c.CheckCondition(elem)
}
然而,我认为这是非常不合法的,它迫使用户使用
检查元素是否满足条件的特定函数。
如果是C++,我会把一个函数的指针作为一个参数发送,但在java中是不可能的。
我曾考虑过使用Comparable
对象,但这并不好,因为我必须在类中实现它,而不是从用户那里获得它
对这个问题还有什么好主意吗
谢谢 现在还没有-Java 7仍然没有闭包(C中的“函数指针”)。它可能有Java8版本。同时,我们还在把谓词写成类 但你可能对番石榴图书馆感兴趣。它由谷歌开发,已经提供了过滤、映射或转换集合元素的类。
我认为您的建议相当优雅,尤其是与泛型和匿名类结合使用时:
set.choose(new Condition<Elem>() {
boolean checkCondition(Elem elem) {
...
}
});
set.choose(新条件(){
布尔校验条件(Elem Elem){
...
}
});
请参阅。