Если вы только что получили итератор, то это то, что вам нужно сделать - он не не знает , сколько осталось элементов для повторения, поэтому вы не можете запросить его дляэтот результат.Существуют служебные методы, которые, кажется, делают это (например, Iterators.size()
в Guava), но под ними они просто выполняют примерно ту же операцию.
Однако многие итераторы происходят из коллекций, которые вы часто можетезапросить их размер.И если это пользовательский класс, для которого вы получаете итератор, вы можете использовать метод size () для этого класса.
Короче говоря, в ситуации, когда вы only если у вас есть итератор, то лучшего способа нет, но гораздо чаще вы получаете доступ к базовой коллекции или объекту, из которого вы можете получить размер напрямую.