# Swap Two Variables in Place

Usually, when a programmer is asked to swap two variables, they will:

- Create a
`temp`

variable to hold one of their values.`temp = x`

- Assign one to the other
`x = y`

- Retrieve temporary variable
`y = temp`

What if you were asked to do without adding a temp variable (i.e. without using any extra space). There is two easy ways to so.

The first way uses addition and subtraction. Here is a java implementation of this method.

```
public static void swap(int x, int y) {
x = y - x;
y = y - x;
x = x + y;
}
```

The second way uses the `XOR`

operator. With 3 `XOR`

operations, you can swap values in `x`

and `y`

easily.

```
public static void XORSwap(int x, int y) {
x = x ^ y;
y = x ^ y;
x = x ^ y;
}
```