У меня есть ArrayList целых чисел.Оптимальный способ поиска ArrayList из целых чисел в Android
Скажем, например, в ArrayList с целыми числами 0,4,7,10
Теперь я хочу, чтобы сравнить любое данное число и посмотреть, в каком положении он находится на ArrayList.
Так, например, если мое целое число равно 3, оно должно быть от 0 до 4, поэтому результат будет равен 1. Если мое целое число равно 9, оно будет от 7 до 10, поэтому мой результат будет равен 3.
Очевидно, что я могу перебрать весь ArrayList, как это:
int indexOfItem = 0;
if (mylist.size()>0)
while (indexOfItem<mylist.size() && integerImSearching>mylist.get(itemsToSkip)) {
indexOfItem++;
}
И я могу получить индекс моего пункта из этого метода. Но, хотя это прекрасно, если ArrayList мал, я боюсь, что это не оптимальный способ, если список довольно большой. Есть ли лучший способ достичь этого?
Это не может быть для всех очевидно, что что если BinarySearch() не находит элемент, она возвращает позицию, что ваш товар _would_ быть расположен. – Rainbolt
@John Или, скорее, его дополнение. –
@ChrisJesterYoung Вы правы. – Rainbolt