Java 基于findAll方法的Groovy滤波阵列

Java 基于findAll方法的Groovy滤波阵列,java,arrays,groovy,Java,Arrays,Groovy,我正在学习Groovy,并试图编写以下Java代码的替代方案 Collection<Record> records = requestHelper.getUnmatchedRecords(); Collection<Integer> recordIdentifiers = new ArrayList<>(); for (Record record : records){ int rowId = record.getValue("RowID");

我正在学习Groovy,并试图编写以下Java代码的替代方案

Collection<Record> records = requestHelper.getUnmatchedRecords();
Collection<Integer> recordIdentifiers = new ArrayList<>();
for (Record record : records){
    int rowId = record.getValue("RowID");
    if (rowId >= min && rowId <= max) {
        recordIdentifiers.add(rowId);
    }
}
Collection records=requestHelper.getUnmatchedRecords();
Collection recordIdentifiers=new ArrayList();
用于(记录:记录){
int rowId=record.getValue(“rowId”);
如果(rowId>=min&&rowId
int rowId=record.getValue(“rowId”)

rowId>=min&&rowId似乎很奇怪。以下代码工作正常:

def records = [[r:3],[r:5],[r:6],[r:11],[r:10]]
def range = (1..10)
recordIdentifiers = records.findAll { range.contains(it.r) }
assert recordIdentifiers.size() == 4

您能提供一个工作示例吗?

这里的100和50是多少?在
记录中有多少?过滤器根本不工作还是在
记录标识符中有重复项?
?乍一看代码看起来不错。正如我后来发现的,我的代码很好,但我们的一个初级开发人员产生了一个错误的错误供我使用的数据集——它有重复的数据,因此我有100条记录,而不是50条。他现在感到羞愧。
def records = [[r:3],[r:5],[r:6],[r:11],[r:10]]
def range = (1..10)
recordIdentifiers = records.findAll { range.contains(it.r) }
assert recordIdentifiers.size() == 4