我有一个Map<String, List<String>>
的地图实现和一个包含map键成员变量的javabean类。
Java bean类:
@Data
public class SplunkConfig {
private String parameter1;
private String parameter2;
private String parameter3;
}
地图:
{host=["abc","def","ghi","jkl"],count=["1","3","4","5"],time=["2017-02-03","2017-02-04","2017-02-04","2017-02-05"]}
我想在SplunkConfig
类中设置变量,如下所示:
SplunkConfig sc = new SplunkConfig();
sc.setParameter1("abc");
sc.setParameter2("1");
sc.setParameter3("2017-02-03");
sc.setParameter1("def");
sc.setParameter2("3");
sc.setParameter3("2017-02-04");
..so on..
一旦设置了变量,我就有了一个bean数组列表来存储Java bean。
所以,我要逐个遍历每个键的映射值,并设置javabean成员变量,如上所示。
有人可以让我知道如何循环吗?
提前致谢。
答案 0 :(得分:2)
首先,让我们使用数据 mapWithData 调用地图,其内容为:
{"host"=["abc","def","ghi","jkl"], "count"=["1","3","4","5"], "time"=["2017-02-03","2017-02-04","2017-02-04","2017-02-05"]}
请注意,这些键现在是双引号内的字符串。
现在,让我们从该地图创建一个 SplunkConfig 对象列表:
int numberOfElements = mapWithData.get("host").size();
List<SplunkConfig> config = new ArrayList<SplunkConfig>();
for (int i = 0; i < numberOfElements; i++) {
SplunkConfig sc = new SplunkConfig();
sc.setParameter1(mapWithData.get("host").get(i));
sc.setParameter2(mapWithData.get("count").get(i));
sc.setParameter3(mapWithData.get("time").get(i));
config.add(sc);
}
最好在描述性名称 - 主机中调用 parameter1 。对于参数2和3也是如此。
您最终可以使用或返回 config 。