Есть ли возможность в 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 ->
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости