Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中使用谓词的CollectionUtils_Java_Collections_Apache Commons_Apache Commons Collection - Fatal编程技术网

java中使用谓词的CollectionUtils

java中使用谓词的CollectionUtils,java,collections,apache-commons,apache-commons-collection,Java,Collections,Apache Commons,Apache Commons Collection,我有一个列表,我想返回它找到的第一个与谓词匹配的值 我发现我可以使用CollectionUtils.find(collection,predicate)(apachecommons)。假设对象包含一个名为:value的整数变量,如何在谓词中指定值可以是1,2,3,4,5,并丢弃那些不匹配的值。是否可以执行“包含”操作 也没有使用Java8,所以无法做流 您可以使用(我假设您使用的是JDK 8)。您还可以使用流: list = list.stream().filter(predicate).col

我有一个
列表
,我想返回它找到的第一个与谓词匹配的值

我发现我可以使用
CollectionUtils.find(collection,predicate)
(apachecommons)。假设
对象
包含一个名为:
value
的整数变量,如何在谓词中指定值可以是
1,2,3,4,5
,并丢弃那些不匹配的值。是否可以执行“包含”操作

也没有使用Java8,所以无法做流

您可以使用(我假设您使用的是JDK 8)。您还可以使用流:

list = list.stream().filter(predicate).collect(Collectors.toList());

使用ApachCommons集合,您可以使用。

在Java8中,您可以编写

Optional<Integer> found = list.stream().filter(i -> i >= 1 && i <= 5).findAny();

Optional found=list.stream().filter(i->i>=1&&i=1&&i返回列表中与给定谓词匹配的第一个元素:

MyObject res = CollectionUtils.find(myList, new Predicate<MyObject>() {
    @Override
    public boolean evaluate(MyObject o) {
        return o.getValue() >= 1 && o.getValue() <= 5;
    }
});
CollectionUtils.filter(myList, new Predicate<MyObject>() {
    @Override
    public boolean evaluate(MyObject o) {
        return o.getValue() >= 1 && o.getValue() <= 5;
    }
});
MyObject res=CollectionUtils.find(myList,new Predicate()){
@凌驾
公共布尔求值(MyObject o){

return o.getValue()>=1&&o.getValue()=1&&o.getValue(),不幸的是我不是,这就是为什么我选择使用CollectionUtils。我认为操作想要筛选列表(
丢弃那些不匹配的您只需找到匹配谓词的第一个对象。值得注意的是,泛型<代码>谓词< /代码>只出现在版本4No中。您是正确的,我正在使用find,因为我想返回它匹配的第一个值。谢谢,谓词是什么?因为我得到的类型谓词不是泛型的;它不能是PAR。使用参数进行参数化。因此您需要将
对象
强制转换为其实际类型,即包含
变量的类型
CollectionUtils.filter(myList, new Predicate<MyObject>() {
    @Override
    public boolean evaluate(MyObject o) {
        return o.getValue() >= 1 && o.getValue() <= 5;
    }
});