0
def map = new HashMap<String,List<String>>()
def list = new ArrayList<String>()
def list1 = new ArrayList<String>()
list.add("hello1")
list.add("world1")
list.add("sample1")
list.add("sample1")
list1.add("hello2")
list1.add("world2")
list1.add("sample2")
list1.add("sample2")
map.put("abc",list)
map.put("bcd",list1)
def data = new ArrayList<String>()
for(e in map){
println "key = ${e.key} value=${e.value}"
// data = "${e.value} as String[]"
data = "${e.value}"
println "size ${data.size()} " --(B)
check(data)
}
def check(input)
{
println "${input.size()}" ---(A)
for(item in input){
print "$item "}
}
我必須從這個groovy腳本傳遞string []到另一個java函數。所以我想讀取數組列表,然後將其轉換爲字符串數組。但問題是當我將{e.value}
分配給變量data
並試圖獲得大小data.size()
(步驟(A)和(B))。和size is 34
。它將從列表中統計每個字符而不是整個單詞。我想遍歷列表中的每個單詞。請讓我知道如何解決這個問題。問題當迭代使用groovy作爲值的列表
樣本輸出
key = abc value=[hello1, world1, sample1, sample1]
size 34
你爲什麼要將你的列表轉換成(G)字符串('data =「$ {e.value}」')?如果您需要傳遞'String []'而不是'List',您可以簡單地將它'投射':'[「a」,「b」,「c」]作爲String []' –
cfrick
'data =「$ {e.value}「'是不需要的。只需使用'data = e.value' –