我有一个列表(tsts),该列表是动态的,是在分离操作中派生的,但可能如下所示。 我想遍历tsts并创建一个新列表-> list1,仅选择说到索引2。我尝试了for循环,甚至-> tsts.eachWithIndex {item,index-> for some为什么我的list1只包含最后一个项目?
import org.apache.jmeter.util.JMeterUtils;
import groovy.json.JsonSlurper;
def jsonResponse = null;
List<String> tsts = new ArrayList<String>()
tsts = [10, 11, 12];
str1 = "abc"
def map1 = [:]
def list1 = []
int TCcntr = 2;
cnt1 = 0
System.out.println("1 My Loop begins----------------");
for(int i = 0;i<TCcntr;i++) {
map1.clear()
map1.put(str1,tsts[cnt1].toInteger());
System.out.println("map1----> "+map1);
// list1.add(map1);
list1 = list1+map1;
System.out.println("list---> "+list1);
cnt1 = cnt1+1;
}
我的输出
1 My Loop begins----------------
map1----> [abc:10]
list---> [[abc:10]]
map1----> [abc:11]
list---> [[abc:11], [abc:11]]
为什么列表1继续进行最后一项迭代?它应该看起来像这样
list1----> [[abc:10], [abc:11]]
答案 0 :(得分:1)
这很有用,多亏了Dimitri和Tim,我还学会了其他方法
tsts = [10, 11, 12, 13];
str1 = "abc"
def list1 = []
int TCcntr = 3;
for(int i = 1;i<TCcntr;i++) {
map1 =[:]
map1.put(str1,tsts[i].toInteger());
list1 = list1+map1;
}
输出
list---> [[abc:11], [abc:12]]