Java集合框架详解:Collection与Iterator

需积分: 9 0 下载量 3 浏览量 更新于2024-06-29 收藏 851KB PDF 举报
"集合.pdf" 集合在Java编程中扮演着至关重要的角色,它们允许我们动态地存储和管理数据。集合框架是Java中用于存储、管理和操作对象的一个标准接口和类库。在Java中,集合主要分为两大类:单列集合(Collection)和双列集合(Map)。 单列集合Collection是所有单元素容器的根接口,它提供了基本的增删改查操作。其中,实线继承表示直接继承,虚线实现接口意味着一个类实现了某个接口但并未直接继承。在Collection接口下,有两个重要的子接口:Set和List。Set接口的实现类如HashSet不允许存储重复元素,并且通常不保证元素顺序;而List接口的代表如ArrayList则允许存储重复元素,并且元素有特定的顺序。 ArrayList是一个基于数组实现的列表,它允许快速的随机访问。当我们创建一个新的ArrayList实例时,例如`ArrayList<String> a = new ArrayList<>();`,我们可以使用`add()`方法向列表中添加元素,如`a.add("jack");`。此外,ArrayList还支持通过下标访问元素,例如`a.get(0);`。 Map接口是双列集合,用于存储键值对(Key-Value)。HashMap是Map接口的一个实现,允许null键和值。创建一个HashMap实例,如`HashMap<String, String> a = new HashMap<>();`,我们可以使用`put()`方法插入键值对,如`a.put("1", "mary");`。 Collection接口提供了多种方法来操作元素,包括: 1. `add(E e)`:添加一个元素。 2. `remove(Object o)`:删除指定的元素。 3. `contains(Object o)`:检查集合是否包含指定元素。 4. `size()`:返回集合中元素的数量。 5. `isEmpty()`:判断集合是否为空。 6. `clear()`:移除所有元素。 7. `addAll(Collection<? extends E> c)`:将另一个集合的所有元素添加到当前集合。 8. `containsAll(Collection<?> c)`:检查集合是否包含指定集合的所有元素。 9. `removeAll(Collection<?> c)`:移除集合中与指定集合相同的元素。 遍历Collection集合通常有两种方式: 1. 使用迭代器(Iterator):所有实现了Collection接口的集合类都有`iterator()`方法,返回一个实现了Iterator接口的对象。迭代器使用`hasNext()`检查是否还有下一个元素,然后用`next()`获取下一个元素。需要注意的是,如果在没有调用`hasNext()`的情况下直接调用`next()`,可能会抛出`NoSuchElementException`。 2. 增强型for循环(foreach):Java 5引入的增强型for循环简化了遍历集合的过程,无需手动管理迭代器。例如,`for (E element : collection) { ... }`,它会自动处理迭代器的细节。 在使用增强型for循环时,一旦循环结束,迭代器不再可用,如果想再次遍历,需要重新创建迭代器或使用传统的迭代器模式。同时,增强型for循环只能用于遍历,不能用于修改集合,如果需要在循环中修改集合,建议使用迭代器。 了解并熟练掌握集合框架是Java编程的基础,这将有助于更有效地组织和操作数据,提高代码的可读性和效率。