Collection和Iterator接口

  • Collection中能存放什么元素?

    • 没有使用泛型之前,Collection中可以存储Object的所有子类型。
    • 使用了泛型之后,Collection中只能存储某个具体的类型。
    • Collection中什么都能存,只要是Object的子类型就行,(集合中只能存储内存地址)

  • 关于Collection接口中常用的方法:

    • boolean add(Object o); // 向集合中添加元素
    • boolean remove (Object o);  //删除集合中的某个元素
    • int size();  //获取集合中元素的个数
    • void clear();  //清空集合
    • boolean contains(Object o);  //判断当前集合中是否包含元素 o
    • boolean isEmpty();  //判断该集合中元素的个数是否为0
    • Obejct[] toArray();  //调用这个方法可以把集合转换成数组。(使用不多)

  • 关于集合遍历/迭代,Iterator:

    • 讲解的遍历方式/迭代方式,是所有Collection子类通用的一种方式。
    • 在Map集合中不能用,在所有的Collection以及子类中使用。
    • 以下两个方法是迭代器对象Iterator中的方法:
      • Boolean hasNext();  //如果仍有元素,则返回true
      • Object next();    // 指向下一个元素,并且返回此元素
    • 结论:存放在一个集合中的类型,一定要重写equals方法。不然比较的就是内存地址了。

  • 使用Iterator迭代集合时,调用remove()的注意事项

    • 1、当集合的结构发生改变时,迭代器必须重新获取,如果没有重新获取,调用next()方法时就出现异常。
    • 2、在迭代集合元素的过程中,不能调用集合对象的remove方法删除元素。会出现异常。
    • 3、在迭代元素的过程当中,一定要使用迭代器Iterator的remove方法,删除元素。不要使用集合的remove方法删除元素。

  • 使用增强for进行遍历

    • 可以代替iterator迭代器,但是底层仍然是迭代器,调用的是迭代器的方法,hasNext(),next()
    • foreach:
      • 叫做增强for循环,或者叫做foreach
      • foreach有一个缺点:没有下标,在需要使用下标的循环中,不建议使用增强for循环。
      • for(数据类型 变量名 : 数组或者集合){
      • }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@小红花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值