我正在使用当前工作的方法来解决速度问题,该方法可在ArrayList
中找到特定的属性集合。根据大小,可能需要超过7秒才能在列表中找到该值。
我需要加快此过程,以便处理大量数据。任何帮助将不胜感激。这是我的例子;
方法:
public ArrayList getIntegrationTag(String attribute) {
return crmMapping?.findAll { it.get("ATTRIBUTE") == attribute }?.collect{
it.INTEGRATION_TAG
}?.unique()
}//end getIntegrationTag(String attribute)
crm映射内容
"[{ATTRIBUTE=AcademicIndex, INTEGRATION_TAG=Contact~nAcademic_Index}, {ATTRIBUTE=AcademicInterest, INTEGRATION_TAG=Contact~msplAcademic_Interest},........]"
最佳答案
findAll遍历每个记录,然后collect遍历每个记录,然后Unique遍历每个记录。
尝试...
Set result = [] as Set
for(element in crmMapping) {
if(element.get("ATTRIBUTE") == attribute) {
result << element.INTEGRATION_TAG
}
}
return (result as ArrayList)
仅当它添加到Set中时它将唯一时,才会循环
关于grails - Grails:ArrayList-检索速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240725/