code: public void removeOrSplitImpossibleIslands(Integer islandSize, Map<Integer, List<Island>> islandMultimap) {
          Collection<Island> islandsToCheck = new ArrayList<>(islandMultimap.getOrDefault(islandSize, Collections.emptyList()));
          for (Island island : islandsToCheck) {
              if (!isIslandPossibleCandidate(island)) {
                  islandMultimap.computeIfPresent(islandSize, (s, i) -> {
                      i.remove(island);
                      return (i.isEmpty() ? null : i);
                  });
                  removeConflictingEndCoordinates(island);
                  if (island.size() > 0) {
                      islandMultimap.computeIfAbsent(island.size(), s -> new ArrayList<>()).add(island);
                  }
              }
          }
      }
docs: TODO: That should not happen, if we want to build a decision tree.