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

Method union

output/java_guava/1.4.19/Sets.java:631–669  ·  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

629
630
631 public static <E> SetView<E> union(
632 final Set<? extends E> set1, final Set<? extends E> set2) {
633 checkNotNull(set1, "set1");
634 checkNotNull(set2, "set2");
635 final Set<? extends E> set2minus1 = difference(set2, set1);
636 return new SetView<E>() {
637 @Override
638 public int size() {
639 return IntMath.saturatedAdd(set1.size(), set2minus1.size());
640 }
641
642 @Override
643 public boolean isEmpty() {
644 return set1.isEmpty() && set2.isEmpty();
645 }
646
647 @Override
648 public Iterator<E> iterator() {
649 return Iterators.unmodifiableIterator(Iterators.concat(set1.iterator(), set2minus1.iterator()));
650 }
651
652 @Override
653 public boolean contains(Object object) {
654 return set1.contains(object) || set2.contains(object);
655 }
656
657 @Override
658 public <S extends Set<E>> S copyInto(S set) {
659 set.addAll(set1);
660 set.addAll(set2);
661 return set;
662 }
663
664 @Override
665 public ImmutableSet<E> immutableCopy() {
666 return new ImmutableSet.Builder<E>().addAll(set1).addAll(set2).build();
667 }
668 };
669 }
670
671 /**
672 * Returns an unmodifiable <b>view</b> of the intersection of two sets. The

Callers 4

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

Calls 2

differenceMethod · 0.95
checkNotNullMethod · 0.45

Tested by

no test coverage detected