Двоичный поиск , но разве это всего лишь 50 пунктов, кого это волнует (если вам не придется делать это миллионы раз)? Простой линейный поиск проще, а разница в производительности для 50 наименований незначительна.
Редактировать : Вы также можете использовать встроенный метод java.util.Collections binarySearch . Имейте в виду, что он вернет точку вставки, даже если элемент не найден. Возможно, вам придется выполнить дополнительную пару проверок, чтобы убедиться, что товар действительно тот, который вам нужен. Спасибо @Matthew за указатель.