Как получить размер итератора без зацикливания?

1

Как получить размер Iterator без цикла? Есть какой-либо способ сделать это?

Iterator<String> keys = Map.keySet().iterator();

Теперь я хочу, чтобы размер Keys просто забыл Map.keySet() здесь.

Теги:
iterator

2 ответа

2

Итератор просто дает вам метод ходьбы по коллекции, поэтому "размер итератора" - это размер коллекции, которую он итерации. В этом случае просто используйте Set (или любую другую коллекцию), встроенную в метод size():

int size = Map.keySet().size();

Если вы находитесь в ситуации, когда у вас есть только доступ к Iterator, но вам нужен базовый размер коллекции, я думаю, вам нужно поговорить с тем, который дает вам только этот итератор, и либо получить доступ к коллекции, либо получить размер Коллекция.

1

Итератор представляет собой реализацию интерфейса java.util.Iterator. Этот интерфейс не предоставляет никакого способа узнать размер его реализаций (на самом деле для этих реализаций не требуется свойство размера). Если вам нужен Iterator с размером и методом его получения, вы должны создать свою собственную реализацию.

Однако, если вам нужен размер коллекции, итератор пересекает, ответ fvu правильный.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню