0

内の特定の属性コレクションを見つける現在動作中のメソッドで速度の問題に取り組んでいArrayListます。サイズによっては、リスト内の値を見つけるのに 7 秒以上かかる場合があります。

より大量のデータを処理できるように、このプロセスを高速化する必要があります。どんな援助でも大歓迎です。これが私の例です。

方法:

public ArrayList getIntegrationTag(String attribute) {
  return crmMapping?.findAll { it.get("ATTRIBUTE") == attribute }?.collect{
    it.INTEGRATION_TAG 
  }?.unique()
}//end getIntegrationTag(String attribute)

crmMapping コンテンツ

"[{ATTRIBUTE=AcademicIndex, INTEGRATION_TAG=Contact~nAcademic_Index}, {ATTRIBUTE=AcademicInterest, INTEGRATION_TAG=Contact~msplAcademic_Interest},.......]"

4

2 に答える 2

0

以下を1回行う

def crmMappingMap = crmMapping.groupBy({ it.ATTRIBUTE })

次に、すべての同じ属性インスタンスのマップを取得しcrmMappingMap[attribute].INTEGRATION_TAG、 を使用してアクセスできます。これにより、次のように目的の配列が返されます。

public ArrayList getIntegrationTag(String attribute) {
    crmMappingMap[attribute].INTEGRATION_TAG.unique()
}

常に地図を保持しておけば、アクセスの速度は十分に速くなります。

于 2013-04-26T18:45:05.393 に答える