Вернуть тип поставщика данных Object [] из Hashmap - PullRequest
0 голосов
/ 03 июня 2019

У меня есть Hashmap с несколькими парами.В качестве примера:

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

В соответствии с TestNg, я хочу, чтобы эта карта использовалась в аннотации DataProvider, и возвращаю мне объект [] [], который можно использовать в дальнейшем в тесте следующим образом:

{{"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 голосов
/ 03 июня 2019

Создать вспомогательный класс:

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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...