Как я могу редактировать Список, который установлен в качестве значения внутри карты?(Конкретный пример; Java) - PullRequest
0 голосов
/ 16 мая 2019

Допустим, у меня есть карта типа

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

Внутри списка есть числа {10,21,35,42,50}.

Я хотел бы вычесть каждое числосо следующим, например, 21-10, 35-21 и т. д.

Конечная цель состоит в том, чтобы список имел {11, 14, 7, 8}.

I'mвозникли проблемы с этим, потому что я не знаю, как редактировать список, если он установлен в качестве значения.

Заранее спасибо.

1 Ответ

1 голос
/ 16 мая 2019

Следующий код сделает это:

public void someMethod() {
    Map<Integer, List<Integer>> map = new HashMap<>();
    // Fill the map with values.

    for (Integer key : map.keySet()) {
        map.put(key, generateNewList(map.get(key)));
    }
}

private List<Integer> generateNewList(List<Integer> inputList) {
    List<Integer> newList = new ArrayList<>(inputList.size()-1);
    for (int i = 1; i < inputList.size(); i++) {
        newList.add(inputList.get(i) - inputList.get(i-1));
    }
    return newList;
}

Я должен отметить: это заменит список на карте новым списком, содержащим значения, которые вы хотите, поэтому он не будет работать, если вам нужно сохранить те же списки.

...