MCPcopy Create free account
hub / github.com/antlr/codebuff / union

Method union

corpus/java/training/guava/collect/Sets.java:590–630  ·  view source on GitHub ↗

Returns an unmodifiable view of the union of two sets. The returned set contains all elements that are contained in either backing set. Iterating over the returned set iterates first over all the elements of set1, then over each element of set2, in order, that is not contained

(final Set<? extends E> set1, final Set<? extends E> set2)

Source from the content-addressed store, hash-verified

588 * the {@link Map#keySet} of an {@code IdentityHashMap} all are).
589 */
590 public static <E> SetView<E> union(final Set<? extends E> set1, final Set<? extends E> set2) {
591 checkNotNull(set1, "set1");
592 checkNotNull(set2, "set2");
593
594 final Set<? extends E> set2minus1 = difference(set2, set1);
595
596 return new SetView<E>() {
597 @Override
598 public int size() {
599 return IntMath.saturatedAdd(set1.size(), set2minus1.size());
600 }
601
602 @Override
603 public boolean isEmpty() {
604 return set1.isEmpty() && set2.isEmpty();
605 }
606
607 @Override
608 public Iterator<E> iterator() {
609 return Iterators.unmodifiableIterator(
610 Iterators.concat(set1.iterator(), set2minus1.iterator()));
611 }
612
613 @Override
614 public boolean contains(Object object) {
615 return set1.contains(object) || set2.contains(object);
616 }
617
618 @Override
619 public <S extends Set<E>> S copyInto(S set) {
620 set.addAll(set1);
621 set.addAll(set2);
622 return set;
623 }
624
625 @Override
626 public ImmutableSet<E> immutableCopy() {
627 return new ImmutableSet.Builder<E>().addAll(set1).addAll(set2).build();
628 }
629 };
630 }
631
632 /**
633 * Returns an unmodifiable <b>view</b> of the intersection of two sets. The

Callers 4

createElementSetMethod · 0.95
adjacentNodesMethod · 0.95
incidentEdgesMethod · 0.95
adjacentEdgesMethod · 0.95

Calls 2

differenceMethod · 0.95
checkNotNullMethod · 0.45

Tested by

no test coverage detected