Найти среднее значение именованного свойства в LinkedHashMap, принадлежащего каждому из набора агентов - PullRequest
0 голосов
/ 26 апреля 2020

Есть ли способ найти среднее значение именованного свойства в LinkedHashMap, принадлежащего каждому из набора агентов, без итерации коллекции?

В простых Java терминах, которые можно переформулировать как msgstr "найти среднее значение свойства, хранящегося в LinkedHashMap, принадлежащего каждому элементу списка". Действительно, это должно быть сделано из списка, поскольку коллекция агента должна сначала фильтроваться на основе значения переменной.

Дублирование свойства LinkedHashMap в автономном параметре не является вариантом, так как на самом деле их 135, что является одной из причин, почему они находятся в LinkedHashMap, и поэтому сводит на нет любое преимущество в производительности по сравнению с итерацией того, для которого требуется среднее значение в любой заданной точке.

В ответ на вопрос Бенджамина, вот мой текущий код, чтобы сделать это вручную, где sParam является заглушкой имени элемента LinkedHashMap, а iSegment является уникальным:

// Iterate the Products:
for (Product oProduct : Products.findAll(
        p -> p.v_active == true
    )) {

    // Add the Segment value for this Param:
    iCountProducts++;
    dblTotal += oProduct.v_paramMap.getOrDefault(sParam +  Integer.toString(iSegment), 0.0);

}

// Calculate the mean:
dblReturn = dblTotal / iCountProducts;

Мне просто интересно, есть ли в среднем стиль где могут быть адаптированы к этой ситуации. Нет bigg ie, если нет - вышеописанное выполняется 1000 раз за 0,008 секунды.

...