Вы можете создать отдельный тип агента для своих групп клиентов, каждый со своей собственной коллекцией (например, ArrayList) агентов клиентов, а затем добавить своих клиентов в эти коллекции. После этого вы сможете использовать метод, выбранный вами, для случайного выбора группы клиентов вместе со всеми ее клиентами (или ссылками на них). Затем вы также можете написать функции et c. для вашего типа агента по населению клиентов, который вам может пригодиться.
В модели динамики рынка, за которую я несу ответственность - и за которую изначально была создана команда Бенджамина, - именно так назначается глобальная совокупность агентов клиентов. банкам (теперь продуктам), и у меня пока не было причин (четыре года) менять его. При необходимости вы можете легко перемещать агентов клиентов между группами населения. Опять же, в моем конкретном примере c я не видел необходимости изменять код, который я унаследовал, так что это облегчается простым вызовом add / remove соответствующих ArrayLists of Customers.