какой конкретный класс выбрать?
Возможно, я бы просто пошел с ArrayList
или LinkedList
. Оба поддерживают методы add
и iterator
, и соседние из них имеют значительные накладные расходы.
Есть ли преимущество, например, в использовании набора, а не списка?
Нет, я бы так не сказал. (Если вы не полагаетесь на порядок элементов, в этом случае вы должны использовать список или хотите запретить дубликаты, в этом случае вы должны использовать набор.)
(Я не вижу, как какая-либо реализация Set могла бы превзойти реализацию списка для методов добавления / итератора, поэтому я бы, вероятно, выбрал List, даже если мне не важен порядок.)
Какой из них будет иметь наименьшие накладные расходы?
Звучит как микро-бенчмаркинг, но если бы мне пришлось угадывать, я бы сказал ArrayList (или, возможно, LinkedList в случаях, когда ArrayLists часто перераспределяет память: -)