Java 迭代器与集合

Java 迭代器与集合

迭代器集合 ,两者都在很多时候帮助和安慰了程序员。但它们的用法和应用有很大的不同。

1.迭代器

  • 声明
public interface Iterator

Type 参数:
E – 该迭代器返回的元素的类型

迭代器在Java的Collection框架中被用来一个一个地检索元素。

  • 方法总结
修改器和类型 方法 说明
默认无效 forEachRemaining(Consumer action) | 对每个剩余的元素执行给定的动作,直到所有的元素都被处理完,或者该动作抛出一个异常。
boolean | hasNext() | 如果迭代有更多的元素,返回true。
E | next() | 返回迭代中的下一个元素。
默认无效 | remove() | 从底层集合中删除由该迭代器返回的最后一个元素(可选操作)。

**2.集合**

* **声明**

“`java
public interface Collection<E> extends Iterable<E>
“`

**类型参数:**
E – 这个迭代器返回的元素的类型

集合是一组单独的对象,作为一个单元来表示。Java提供了集合框架,它定义了几个类和接口来表示作为一个单元的一组对象。

* **方法总结**

修改器和类型 | 方法 | 说明
—|—|—
boolean | add(E e) | 确保这个集合包含指定的元素(可选操作)。
布尔型 | addAll(Collection c) | 将指定集合中的所有元素添加到这个集合中(可选操作)。
空白 | 清除() | 从这个集合中删除所有的元素(可选操作)。
boolean | 包含(Object o) | 如果这个集合包含指定的元素,返回true。
布尔型 | containsAll(Collection c)

如果这个集合包含了指定集合中的所有元素,则返回true。
布尔型 equals(Object o) 将指定的对象与这个集合进行比较,看是否相等。
int hashCode() 返回此集合的哈希代码值。
boolean isEmpty() 如果这个集合不包含任何元素,返回true。
迭代器<E 迭代器() 返回这个集合中的元素的迭代器。
默认的Stream<E parallelStream() 返回一个以这个集合为源的可能的平行流。
boolean remove(Object o) 从这个集合中删除一个指定元素的单个实例,如果它存在的话(可选操作)。
布尔型 removeAll(Collection<?> c) 删除此集合中所有也包含在指定集合中的元素(可选操作)。
默认布尔值 removeIf(Predicate filter) | 删除此集合中满足给定谓词的所有元素。
布尔型 | retainAll(Collection c)
只保留此集合中包含在指定集合中的元素(可选操作)。
int size() 返回这个集合中元素的数量。
默认的Spliterator<E spliterator() 在这个集合中的元素上创建一个Spliterator。
默认的Stream<E stream() 返回一个以这个集合为源的连续的Stream。
对象[] toArray() 返回一个包含此集合中所有元素的数组。
T[] toArray(T[] a) 返回一个包含此集合中所有元素的数组;返回的数组的运行时类型是指定数组的类型。

迭代器vs.集合

  • 迭代器只能移动到 下一个() 元素或 删除() 一个元素。

    但是集合可以 添加() 、迭代、 删除()清除() 集合中的元素。

  • 迭代器提供了比集合更好的速度,因为迭代器接口的操作数量有限。

  • java.sql.SQLException扩展了Iterable 因此,它允许调用者安全地迭代SQLException的原因。

在这种情况下,使用一个集合会很昂贵,因为在一个有n个异常的链中,在SQLException接口中使用一个集合可能需要构建O(n^2)个元素。 但是,使用Iterable提供了对异常链的O(n)访问。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程