Как правильно заменить цикл for на stream в данном коде

Мне нужно переписать цикл в методе convertArrayToMapWithKeysAndValues через stream, но не понимаю как правильно это сделать.

private static String[] keysAndValuesList = new String[] {
        "-i", "in.txt", "--limit", "40", "-d", "1", "-o", "out.txt"
};

public static Map<String, String> convertArrayToMapWithKeysAndValues() {
    Map<String, String> convertArray = new HashMap<>();
    for (int i = 0; i < keysAndValuesList.length;) {
        convertArray.put(keysAndValuesList[i], keysAndValuesList[i + 1]);
        i += 2;
    }
    return convertArray;
}

Ответы (1 шт):

Автор решения: Alexandr

Можно так:

public static Map<String, String> convertArrayToMapWithKeysAndValues() {
    return IntStream.range(0, keysAndValuesList.length / 2)
            .boxed()
            .collect(
                    Collectors.toMap(
                            i -> keysAndValuesList[i * 2],
                            i -> keysAndValuesList[i * 2 + 1]));
}
→ Ссылка