2017-03-02 32 views
1

我需要创建从地图在Groovy一个数组的字符串。在groovy中追加字符串的理想方式是什么?

必需的字符串= ^(123|456|789)

目前我在做类似下面,将这项事业的性能问题在生产中框或我应该用StringBuffer的Java类?

def getProjectList(def caseResult) { 
    def projectList = "" 
    caseResult.each { projno -> 
     if (projectList.length() == 0) { 
      projectList = "^(${projno.project_no}|" 
     } else { 
      if (projectList.indexOf(projno.project_no) == -1) 
       projectList+="${projno.project_no}|" 
     } 
    } 
    projectList = projectList.substring(0, projectList.length() - 1) 
    projectList += ')' 
    return projectList 
} 
+0

'这会引起性能问题'好吧,先定义_performance issue_。 –

+0

你输入什么_“地图阵列”_看起来像什么? –

+0

@EelLee:OOM异常 – Ricky

回答

3

我会去阅读方便......

def getProjectList(def caseResult) { 
    "^(${caseResult.project_no.join('|')})" 
} 

其实,你只是想唯一的人不好吗?

def getProjectList(def caseResult) { 
    "^(${caseResult.project_no.unique().join('|')})" 
} 
1

我需要创建从地图的在一个常规阵列的字符串。

这将是非常有用的,以限定参数类型然后。 也是返回类型。

将在生产彩盒

嗯,这导致性能问题,定义性能问题第一。你有没有测量过任何东西,认为你的代码有任何性能问题?如果不是,它看起来像一个典型的“过早优化

我应该用StringBuffer的Java类

如果你担心性能,那么你应该宁可使用StringBuilder,因为StringBuffer的是thread-安全,采取一点表现打击。

如果你的代码从什么症,它是相当的可读性不是性能。 我建议你这个StackExchange网站,专门为这样的问题 - https://codereview.stackexchange.com/ - 试试看!

相关问题