Guava源码阅读——Collect包.Sets类

union类实现


传入:set1, set2

传出:内部实现的 setView 其继承了 AbstractSet

public static <E> SetView<E> union(final Set<? extends E> set1, final Set<? extends E> set2) {

  checkNotNull(set1, "set1");

  checkNotNull(set2, "set2");



  return new SetView<E>() {

    @Override

    public int size() {

      int size = set1.size();

      for (E e : set2) {

        if (!set1.contains(e)) {

          size++;

        }

      }

      return size;

    }



    @Override

    public boolean isEmpty() {

      return set1.isEmpty() && set2.isEmpty();

    }



    @Override

    public UnmodifiableIterator<E> iterator() {

      return new AbstractIterator<E>() {

        final Iterator<? extends E> itr1 = set1.iterator();

        final Iterator<? extends E> itr2 &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值