从<String,List <String >>的Hashmap返回数据提供程序类型Object []

时间:2019-06-03 07:57:16

标签: java testng

我有一个具有多个配对的Hashmap。 例如:

Map<String, List<String>> map = new HashMap<>();
{name}- key
{abc, dfc, ghj}- values
{address}- key
{ghj,uio,opd}-values

根据TestNg,我希望将此地图用于DataProvider批注,并向我返回一个Object [] [],该对象可以通过以下方式在Test中进一步使用:

{{"name,abc"},{"name,dfc"}....}

道歉,没有提到我尝试过的解决方案,它来了:

String[] keys = new String[map.size()];
  ArrayList<ArrayList<String>> values = new ArrayList<>();
        int index = 0;
        for (Map.Entry<String, List<String>> mapEntry : map.entrySet()) {
            keys[index] = mapEntry.getKey();
            values[index] = mapEntry.getValue();
            index++;
        }

1 个答案:

答案 0 :(得分:0)

创建一个助手类:

private class Pair {
  public String key, value;
}

您的代码:

Map<String, List<String>> map = new HashMap<>();

List<Pair> pairs = new ArrayList();
for(Map.Entry<String, List<String>> entry : map.entrySet())
{
  for(String value : entry.getValue())
  {
    Pair newPair = new Pair();
    newPair.key = entry.getKey();
    newPair.value = value;
    pairs.add(newPair);
  }
}