Cus Asked:2020-01-22 02:53:52 +0000 UTC2020-01-22 02:53:52 +0000 UTC 2020-01-22 02:53:52 +0000 UTC 循环遍历 Deque/Queue 元素 772 大家好!如何像数组一样遍历 Deque 和 Queue 的所有元素? java 2 个回答 Voted Tagir Valeev 2020-01-22T10:59:55Z2020-01-22T10:59:55Z 接口Queue和Deque扩展接口Collection,因此您可以像在任何集合中一样遍历所有元素 - 使用扩展循环for: void enumerateQueue(Queue<T> queue) { for(T t : queue) { // здесь можно делать что угодно с очередным элементом коллекции System.out.println(t); } } 像任何集合一样,Queue并且Deque有一个方法stream()允许您使用 Stream API 遍历元素: void queueAsStream(Queue<T> queue) { queue.stream().forEach(System.out::println); } Best Answer mbto 2020-01-22T03:11:12Z2020-01-22T03:11:12Z Queue<Integer> q = new ArrayDeque<>(Arrays.asList(11, 33, 55, 22, 44)); //#1 for-each q.forEach(System.out::println); //#2 итерация "как в массиве" с i Iterator<Integer> iterator = q.iterator(); for (int i = 0; ; ++i) { if (iterator.hasNext()) { Integer value = iterator.next(); System.out.println(i + " " + value); } else break; } //#3 итерация "как в настоящем массиве" List<Integer> integers = new ArrayList<>(q); for (int i = 0, max = integers.size(); i < max; i++) { System.out.println(i + " " + integers.get(i)); } 结果: 11 33 55 22 44 0 11 1 33 2 55 3 22 4 44
接口
Queue和Deque扩展接口Collection,因此您可以像在任何集合中一样遍历所有元素 - 使用扩展循环for:像任何集合一样,
Queue并且Deque有一个方法stream()允许您使用 Stream API 遍历元素:结果: