Я пытаюсь сравнить две карты и вернуть результат в виде списка но он не печатает правильный результат - PullRequest
1 голос
/ 07 мая 2020

Вот мой код:

public List compareMaps(Map dataMap1, Map dataMap2) {
    List errData = new ArrayList();

    for (Entry<String, String> data1 : dataMap1.entrySet()) {

        if (dataMap2.containsKey(data1.getKey())) {
            if (!dataMap2.get(data1.getKey()).equalsIgnoreCase(data1.getValue())) {
                errData.add(
                        new String[] { data1.getKey(), data1.getValue(), dataMap2.get(data1.getKey()).toString() });
            }
        } else
            errData.add(
                    new String[] { data1.getKey(), data1.getValue(), "No corresponding data found in paperclip" });

    }

    return errData;
}

В чем может быть проблема?

Вывод:

set[[Ljava.lang.String;@3578436e, [Ljava.lang.String;@706a04ae, [

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Используйте Arrays::toString, чтобы распечатать массив из результата:

List<String[]> result = compareMaps(Map.of(...), Map.of(...));
for (String[] data : result) {
    System.out.println(Arrays.toString(data));
}

Кроме того, убедитесь, что вы используете параметризованный тип вместо сырого типа, как показано ниже:

public List<String[]> compareMaps(Map<String, String> dataMap1, Map<String, String> dataMap2) {
    List<String[]> errData = new ArrayList<String[]>();
    for (Entry<String, String> data1 : dataMap1.entrySet()) {
        if (dataMap2.containsKey(data1.getKey())) {
            if (!dataMap2.get(data1.getKey()).equalsIgnoreCase(data1.getValue())) {
                errData.add(
                        new String[] { data1.getKey(), data1.getValue(), dataMap2.get(data1.getKey()).toString() });
            }
        } else {
            errData.add(
                    new String[] { data1.getKey(), data1.getValue(), "No corresponding data found in paperclip" });
        }
    }
    return errData;
}
0 голосов
/ 07 мая 2020
for(String[] arr:errData){
      System.out.println(Arrays.toString(arr));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...