Универсальный алгоритм для такой постановки задачи вряд ли найти можно. Нужно уточнить определенные детали, чтобы на их основе создавать базу для оптимизации поиска.
Во-первых, как часто объекты вообще вставляются в этот массив и удаляются? А то какая-нибудь сверх-хитрая и быстрая структура данных может оказаться деоптимизацией из-за того, что очень дорогие вставки происходят чаще, чем происходит поиск.
Во-вторых, насколько атрибуты равноправны между собой? Если поиск по одному атрибуту происходит гораздо чаще, чем по другому, то на этой почве можно что-нибудь выиграть, иначе же нужен универсальный, а не спекулятивный алгоритм.
Из-за специфики продукта у нас используется собственная автоматическая система сборки и тестирования, написанная на Java. В частности QFTest просто запускается системой в batch-режиме (задается опцией QFTest'a) через обычный аналог exec() (считай через консоль) каждую ночь, и утром уже имеются очень удобные отчеты с результатами. Главное, чтобы заранее был готов уже работающий и отлаженный файл тестового сценария.
Насчет интеграции с maven я, к сожалению, ничего сказать не могу, т.к. с ним работал мало и плохо представляю его возможности. Но думаю, что это легко-решаемая проблема. Кроме того, у QFTest неплохая техподдержка, которая нам помогла решить некоторые нетривиальные проблемы, и может помочь вам с maven при необходимости.
Во-первых, как часто объекты вообще вставляются в этот массив и удаляются? А то какая-нибудь сверх-хитрая и быстрая структура данных может оказаться деоптимизацией из-за того, что очень дорогие вставки происходят чаще, чем происходит поиск.
Во-вторых, насколько атрибуты равноправны между собой? Если поиск по одному атрибуту происходит гораздо чаще, чем по другому, то на этой почве можно что-нибудь выиграть, иначе же нужен универсальный, а не спекулятивный алгоритм.