Есть ли возможность в java получить индекс элемента коллекции в цикле foreach
?
for (String str: array) {
}
То есть узнать индекс текущего элемента в теле цикла
Для работы с индексами стоит использовать обычный цикл for
Если "очень хочется", то при условии уникальности элементов массива можно воспользоваться поиском элемента в массиве. Однако этот подход получается всецело хуже обычного for-а:
Так что этот подход можно рассматривать только для полноты картины:
List<String> list = Arrays.asList(array);
for (String str : array)
{
int index = list.indexOf(str);
...
}
Вместо метода List.indexOf можно воспользоваться методом ArrayUtils.indexOf из библиотеки Apache Commons Lang, но суть от этого не меняется - только кода становится чуть меньше
Можно ещё использовать дополнительную переменную:
int index = 0;
for (String str : array)
{
...
index++;
}
но это уже получается почти что обычный for
В Kotlin у коллекций и массивов есть метод forEachIndexed
:
list.forEachIndexed { element, index ->
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Давайте соберем подборку хорошей литературы и ресурсов (для разработчиков с разным уровнем владения материалом) по ОС Android (архитектура,...
Имеются два блока кода назовем их А и ВОни в различных классах и пакетах кода и в принципе никак не взаимосвязаны
Существует массив объектовДля него необходимо совершить сортировку по возрастанию(по переменной getId) + к этому, если getId=0, то необходимо объект...
Как в приложение написанное на Android Studio поставить свою карту с Google Maps(Свои места) Нашел, что можно сделать это импортом KML файла, но не понимаю...