java中hasnextdouble_Java集合hasnext()方法

HashSet返回Iterator的实现,它本身不实现Iterator。如果查看HashSet的源代码,可以看到它实际上是由HashMap支持的:

public HashSet() {

map = new HashMap();

}当您调用iterator()方法时,它将返回此映射的迭代器:

public Iterator iterator() {

return map.keySet().iterator();

}这个地图反过来存储一个KeySet ......

private final class KeySet extends AbstractSet {

public Iterator iterator() {

return newKeyIterator();

}

public int size() {

return size;

}

public boolean contains(Object o) {

return containsKey(o);

}

public boolean remove(Object o) {

return HashMap.this.removeEntryForKey(o) != null;

}

public void clear() {

HashMap.this.clear();

}

}当调用iterator()方法时,它会返回KeyIterator:

private final class KeyIterator extends HashIterator {

public K next() {

return nextEntry().getKey();

}

}并且HashIterator实现了Iterator:

private abstract class HashIterator implements Iterator因此,最终,Iterator的实现是HashIterator的私有子类,它隐藏为客户端隐藏的实现细节。这就是使用界面的美妙!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值