Collection和Iterator学习笔记

  1. Collection接口是许多序列容器的共性的根接口,它实现了Iterable接口(可以使用foreach语法)。
  2. java.util.AbstractCollection类提供了Collection的默认实现,这是一个抽象类,除了size()和iterator()方法外都有默认实现。我们可以继承该类,并且实现size()和iterator()方法。
  3. 通过针对接口而非具体实现来编写代码,我们的代码就可以应用于更多的对象类型。比如说如果我写了一个方法接受Collection作为参数,那么任何实现了Collection的类都可以用这个方法(多态的一种表现)
  4. Collection和Iterator两者都可以将遍历方法与底层容器的特定实现解耦。
  5. 实现了Iterable接口的Collection可以使用foreach语法,这样代码更加清晰。
  6. 但是因为java不支持多继承语法,如果一个类已经继承了其他类,它就不能再继承AbstractCollection类了。
  7. 而如果实现要Collection接口就必须实现Collction所有方法。
另外,要实现Collection就必须要实现iterator(),所以此时(已经继承了其它类)选择实现Iterator接口较好。
        @Override
	public Iterator<Pet> iterator() {
		
		return new Iterator<Pet>() {
			private int index = 0;
			@Override
			public void remove() {
				throw new UnsupportedOperationException();
			}
			@Override
			public Pet next() {
				return pets[index++];
			}
			@Override
			public boolean hasNext() {
				return index < pets.length;
			}
		};
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值