import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Main {

    private static List<List<Integer>> dividir(int... array) {
        List<Integer> lista = IntStream.of(array).boxed().collect(Collectors.toList());
        return dividir(lista);
    }

    private static List<List<Integer>> dividir(List<Integer> lista) {
        List<List<Integer>> resultado = new ArrayList<>();
        List<Integer> parte = new ArrayList<>();
        Integer ultima = null;
        for (Integer i : lista) {
            int elemento = i;
            if (!parte.isEmpty() && (ultima == null || (elemento != ultima && elemento != ultima + 1))) {
                resultado.add(parte);
                parte = new ArrayList<>();
            }
            parte.add(elemento);
            ultima = elemento;
        }
        if (!parte.isEmpty()) resultado.add(parte);
        return resultado;
    }

    public static void main(String[] args) {
        int[] array = {1, 2, 2, 3, 3, 3, 6, 6, 7, 11, 12, 12, 13, 14, 14};
        List<List<Integer>> lista = dividir(array);
        System.out.println(lista);
    }
}