У меня есть очередь A фиксированного размера, которая содержит объект Customer. Размер очереди - 1000.
public class Customer {
private final String accountId;
private Double value = null;
private Customer(final String accountId, Double value) {
this.accountId = accountId;
this.value= value;
}
}
Работают два потока. Основной поток помещает этот объект Customer в очередь A, и существует другой поток, который опрашивает объект customer из очереди.
Второй поток должен обработать эти объекты клиентов в карте hashmap, где ключ является accountId и value - это объект записи, который.
public class Record {
List<Double> values;
List<Double> count;
}
здесь значения списка должны содержать все уникальные значения, а список подсчета должен содержать частоту значения.
Например:
Очередь A содержит следующий объект клиента
{"111", 8.0}
{"111", 8.0}
{"111", 9.0}
{"111", 9.0}
{"111", 9.0}
{"111", 10.0}
{"222", 2.0}
{"222", 3.0}
{"222", 3.0}
Ожидаемый результат:
{"111", Record {[8.0, 9.0, 10.0], [2.0, 3.0, 1.0]}}
{"222" Record {[2.0, 3.0], [1.0, 2.0]}
В способе, которым я его реализовывал, сначала добавлялись все значения в списке, подсчет частоты появления всех элементов в списке и удаление дубликата из списка. Но это не очень хорошее решение, так как занимает много памяти. Не могли бы вы предложить мне оптимизированный способ сделать это. Спасибо