Collection接口和实现方法

  1. 1.Collection接口实现类的特点
  2. public interface Collection<E> extends Iterable<E>
  3. 2.Collection实现子类可以存放多个元素,每个元素可以存放Object
  4. 3.Collection的实现类有些可以存放多个元素,有些不可以
  5. 4.Collection的实现类,List是有序的,Set是无序的
  6. 5.Collection接口没有直接的实现子类,是通过它的子接口SetList来实现的

Collection接口常用方法,以实现子类ArrayList来演示

  1. 1.add:添加耽搁元素
  2. 2.remove:删除指定元素
  3. 3.contains:查找元素是否存在
  4. 4.size:获取元素个数
  5. 5.isEmpty:判断是否为空
  6. 6.clear:清空
  7. 7.addAll:添加多个元素
  8. 8.containsAll:查找多个元素是否都存在
  9. 9.removeAll:删除多个元素
  10. 说明:以ArrayList实现类来演示

Collection接口遍历元素方式1-使用Iterator(迭代器)

1) Iterator对象成为迭代器,主要用于遍历Collection集合中的元素;
2) 所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象,即可以返回一个迭代器;
3) Iterator的结构:[图:]
4) Iterator仅用于遍历集合,Iterator本身并不存放对象

迭代器的执行原理

  1. Iterator iterator = col.iterator(); // 得到一个集合的迭代器
  2. // hasNext():判断是否还有下一个元素
  3. while (iterator.hasNext()) {
  4. // next()作用:1.下移 2.将下移以后集合位置上的元素返回
  5. Object obj = iterator.next();
  6. System.out.println("obj = " + obj);
  7. }

提示:在调用iterator.next()方法之前必须要调用iterator,hasNext()进行检测。若不调用,且下一条记录无效,直接调用iterator.next()会抛出java.util.NoSuchElementException异常

代码示例

  1. public class CollectionIterator {
  2. public static void main(String[] args) {
  3. Collection col = new ArrayList();
  4. col.add(new Book("三国演义","罗贯中",10.1));
  5. col.add(new Book("小李飞刀","古龙",5.1));
  6. col.add(new Book("红楼梦","曹雪芹",34.6));
  7. // 1.遍历col集合,先得到col对应的迭代器
  8. Iterator iterator = col.iterator();
  9. // 2.使用while循环遍历==>快捷键:itit
  10. while (iterator.hasNext()) {
  11. Object obj = iterator.next();
  12. System.out.println("obj = " + obj);
  13. }
  14. // 3.当退出while循环后,这是iterator迭代器,指向最后的元素
  15. // iterator.next(); //java.util.NoSuchElementException
  16. // 4.如果希望再次遍历,需要重置我们的迭代器
  17. iterator = col.iterator();
  18. System.out.println("======第二次遍历======");
  19. while (iterator.hasNext()) {
  20. Object obj = iterator.next();
  21. System.out.println("obj = " + obj);
  22. }
  23. }
  24. }

Collection接口遍历元素方式2-for循环增强

增强for循环,可以代替iterator迭代器,特点:增强for就是简化版的iterator,本质一样。只能用于遍历集合或者数组。

基本语法:
for (元素类型 元素名 : 集合名或数组名) {System.out.println(“obj = “ + obj);}

代码示例

  1. public class CollectionIterator {
  2. public static void main(String[] args) {
  3. Collection col = new ArrayList();
  4. col.add(new Book("三国演义","罗贯中",10.1));
  5. col.add(new Book("小李飞刀","古龙",5.1));
  6. col.add(new Book("红楼梦","曹雪芹",34.6));
  7. // 1.使用for,在Collection集合
  8. // 2.增强for,底层仍然是迭代器
  9. // 3.增强for可以理解成就是简化版本的迭代器遍历
  10. // 4.快捷方式==> I
  11. for (Object o : col) {
  12. System.out.println("book = " + o);
  13. }
  14. }
  15. }