java stream List < Map < String, Double > > нужно среднее значение на основе строки

Единственное, что вы передаете функции printf (), - это указатель на первый символ вашей строки. printf () не имеет возможности узнать размер вашего массива. (Он даже не знает, является ли это фактическим массивом, поскольку указатель - это просто адрес памяти.)

printf (), и все стандартные функции строки c предполагают, что в конце ваша строка. printf (), например, будет печатать символы в памяти, начиная с символа, который вы передаете функции, до тех пор, пока он не достигнет 0.

Поэтому вы должны изменить свой код на что-то вроде этого:

char Buffer[9]; //holds the byte stream
int i=0;

if( //user input event has occured ) 
{
        Buffer[i] = charInput;
        i++;

        Buffer[i] = 0; // You can also assign the char '\0' to it to get the same result.

        // Display a response to input
        printf("Buffer is %s!\n", Buffer);

}
3
задан Naman 19 March 2019 в 16:18
поделиться

1 ответ

Вы можете вычислить средние значения для каждого ключа карты, используя:

Map<String, Double> result = Stream.of(m1, m2, m3)
        .flatMap(m -> m.getMap1().entrySet().stream()
                       .filter(e -> e.getValue() != null))
        .collect(Collectors.groupingBy(e -> e.getKey(), 
                Collectors.averagingDouble(e -> e.getValue())));

И вывод для ваших тестовых данных будет {score=60.0, rating=14.0, age=23.333333333333332}

0
ответ дан ernest_k 19 March 2019 в 16:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: