2017-03-02 62 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/ - 試試看!