@Domus

While или Iterator?

Добрый день!
Какую конструкцию предпочтительнее использовать для перебора элементов? Понимаю, что компилятор преобразует "for each" в конструкцию с Iterator и поэтому снижается скорость, но вдруг лучше придерживаться более приятной для глаза конструкции с "for each"?

HashSet<Integer> oneHash = new HashSet<>();

                // First way
		for(Integer element : oneHash){
			System.out.println(element);
		}

                // Second way
		Iterator<Integer> it = oneHash.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@protven
Какая ява-то ? Если восьмая, то почему бы не использовать stream api ?
И поверьте, в подобных вещах не стоит заморачиваться по поводу "скорости". Лучше сосредоточтись на читаемости кода. Натурально. 99.9% узких мест в любой мало-мальски полезной системе - это чтение из БД, передача данных по сети, чтение/запись на диск. Если у вас узкое место это итерация по стандартным джавайским коллекциям и вам нужно это место оптимизировать, значит у вас или сферический пример в вакууме, а не прикладная система, либо все настолько круто, что можно только позавидовать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Evgeny_13
Удобнее использовать второй вариант, если передаете примитивные типы и их ссылочные, если же передаете созданный вами объект - первый путь. (ИМХО)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы