java - 水平循环Map<String, List<String>>并设置javabean的变量

标签 java hashmap

我有 Map<String, List<String>> 的 map 实现以及一个具有映射键成员变量的 javabean 类。

Java bean 类:

@Data
public class SplunkConfig {

  private String parameter1;
  private String parameter2;
  private String parameter3;

}

map :

{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 成员变量,如上所示。

有人可以告诉我如何循环吗?

提前致谢。

最佳答案

首先我们调用带有数据的 map ma​​pWithData,其内容为:

{"host"=["abc","def","ghi","jkl"], "count"=["1","3","4","5"], "time"=["2017-02-03","2017-02-04","2017-02-04","2017-02-05"]}

请注意,键现在是双引号内的字符串。

现在,让我们从该 map 创建一个 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相同。

您终于可以使用或返回配置

关于java - 水平循环Map<String, List<String>>并设置javabean的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369513/

相关文章:

java - 检测是在 servlet 容器中运行还是独立运行

java - 比较 Hashmap 字符串值和重复项的重复键

java - 无法理解entrySet()方法

python - 字典总是在 python 中存储哈希的最有效方式吗?

java - 为什么java.util.HashMap内部使用链表

java - 在 Eclipse RCP 应用程序中,您可以在您的pluginCustomization 文件中定义透视图吗?

java - 单击发现 xpath 在 Chrome 中工作但在 IE11 中不起作用的按钮

java - Spring JDBC 并使对象和数据库保持正确状态

java - 如何在运行单元测试时自动禁用 Spring bean?

java - 为什么当将 hashmap 传输到 treemap 时,具有重复值的不同键会消失