&= (intersect assign) operator

The right-associative, binary infix &= operator is used to compute the intersection of two operands, assigning the result to the left-hand operand.


void m(Set<Integer> primes, Set<Integer> evens) {
    variable Set<Integer> two = primes;
    two &= evens;


And is defined as follows:

lhs = lhs & rhs

See the language specification for more details.


The &= operator is polymorphic.

The & in the definition is the intersection operator which depends on the Set interface.


The result type of the &= operator is a Set with the same element type as the left hand operand's element type.

See also