Code review

Don't merge, I'm using this as a code review branch.
You could do this in one go if I'm not mistaken.

```java
Set<Integer> setOfFirstArg = new HashSet<>(state1.length);
		for (int state : state1) {
			setOfFirstArg.add(state);
		}
		int intersect = 0;
		for (int state : state2) {
			if (!setOfFirstArg.add(state)) {
				intersect++;
			}
		}
		double union = setOfFirstArg.size();
		return intersect / union;
```

The `add` returns false if the set already contained the item, indicating an intersection. Union is the size of the resulting set.