Collections Groovy集合-查找与条件匹配的元素

Collections Groovy集合-查找与条件匹配的元素,collections,groovy,Collections,Groovy,我有一个groovy集合,它是一个数组,包含从0到“n”的值。当发生一系列情况时,我需要找到一个特定的数组索引。而且,我不需要扫描数组的每个值,但可以跳过预定义的间隔。例如,查找数组中每10个值的条件。有人能告诉我怎么做吗? 例如,我想做下面这样的事情 def alltimes = [0 . . . . . 10000] def end_time = 10000 def time = 0 while(time <= end_time) { // check the conditio

我有一个groovy集合,它是一个数组,包含从0到“n”的值。当发生一系列情况时,我需要找到一个特定的数组索引。而且,我不需要扫描数组的每个值,但可以跳过预定义的间隔。例如,查找数组中每10个值的条件。有人能告诉我怎么做吗? 例如,我想做下面这样的事情

def alltimes = [0 . . . . . 10000]
def end_time = 10000
def time = 0
while(time <= end_time)
{
    // check the condition for alltimes[time]
     if(condition_satisfied){ 
         println "condition satisfied at time ${time}"
         break
     }
    time = time + 50  
}
def始终=[0..10000]
def end_时间=10000
def时间=0

而(时间您可以使用
find
进行此操作:

def allTimes = 0..10000

Closure<Boolean> checkCondition = { all, single ->
    single > 300
}

​(0..10000).step( 50 )​.find { time -> ​checkCondition( allTimes, time ) }​
def始终=0..10000
闭包检查条件={all,single->
单个>300
}
​(0..10000)。步骤(50)​.查找{time->​检查条件(所有时间,时间)}​
咖喱成熟了:

def allTimes = 0..10000

Closure<Boolean> checkCondition = { all, single ->
    single > 300
}

​(0..10000).step( 50 )​.find checkCondition.curry( allTimes )​
def始终=0..10000
闭包检查条件={all,single->
单个>300
}
​(0..10000)。步骤(50)​.查找checkCondition.curry(所有时间)​

你能举出一个例子吗?这可能有助于更好地解释你需要什么…仍然不明白…你的例子中的收藏在哪里?对不起,我现在编辑了我的文章。非常感谢..它完成了工作:-)