水平循环Map <string,list <string =“”>&gt;并设置javabean的变量

时间:2017-04-12 12:27:05

标签: java hashmap

我有一个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成员变量,如上所示。

有人可以让我知道如何循环吗?

提前致谢。

1 个答案:

答案 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