在groovy中追加字符串的理想方式是什么?

在groovy中追加字符串的理想方式是什么?,groovy,Groovy,我需要从groovy中的映射数组创建一个字符串 必需字符串=^(123 | 456 | 789) 目前,我正在做下面这样的事情,这会导致生产环境中的性能问题吗?还是应该使用StringBufferJava类 def getProjectList(def caseResult) { def projectList = "" caseResult.each { projno -> if (projectList.length() == 0) {

我需要从groovy中的映射数组创建一个字符串

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

目前,我正在做下面这样的事情,这会导致生产环境中的性能问题吗?还是应该使用StringBufferJava类

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
}
我需要从groovy中的映射数组创建一个字符串

那么定义参数类型将非常有用。 返回类型也是

这会导致生产箱出现性能问题吗

首先定义性能问题。您是否衡量过代码是否存在性能问题?如果不是,它看起来像一个典型的“过早优化”

我应该使用StringBufferJava类吗

如果您担心性能,那么应该使用StringBuilder,因为StringBuffer是线程安全的,会对性能造成一些影响

如果你的代码有什么问题,那就是可读性而不是性能。
我向您推荐这个StackExchange网站,专门针对这些问题--试试看

我会为了阅读的方便

def getProjectList(def caseResult) {
    "^(${caseResult.project_no.join('|')})"
}
事实上,你只是想要独一无二的,不是吗

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

这会导致性能问题吗
好吧,首先定义性能问题。您输入的“地图数组”是什么样子的?@EelLee:OOMExceptions@tim_yates:groovy sql结果集<代码>[[项目编号:0-1006,案例编号:0178786],[项目编号:1-2243239,案例编号:018016],[项目编号:1-2282337,案例编号:020596],[项目编号:1-23232392,案例编号:0200432]]