Просто для простоты.
Если у вас есть массив [5,4,3,2,1] и вы заказываете его в [1,2,3,4,5], он разветвляется быстрее, если вы ищете 1, но поиск займет больше времени 5. Следовательно, с математической точки зрения, если вы заказываете массив, для поиска элемента внутри все равно потребуется цикл от 1 до, в худшем случае, n.
Может быть, для вашей проблемы может помочь сортировка, скажем, вы получаете неупорядоченные временные метки, но
- если ваш массив не слишком маленький
- хотите избежать дополнительных затрат на сортировку для каждой новой записи в массиве
- Вы просто хотите быстро найти объект
- Вы знаете свойства объекта, которые ищете
Вы можете создать KeyObject, содержащий свойства, которые вы ищете, реализует equals & hashCode для него и затем сохранить ваши элементы на карте. Использование Map.containsKey (новый KeyObject (prop1, prop2)) в любом случае будет быстрее, чем зацикливание массива. Если у вас нет реального объекта, вы всегда можете создать поддельный KeyObject, заполненный ожидаемыми свойствами, чтобы проверить карту.