fork(1) download
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.stream.Collectors;
  4. import java.util.stream.IntStream;
  5.  
  6. public class Main {
  7.  
  8. private static List<List<Integer>> dividir(int... array) {
  9. List<Integer> lista = IntStream.of(array).boxed().collect(Collectors.toList());
  10. return dividir(lista);
  11. }
  12.  
  13. private static List<List<Integer>> dividir(List<Integer> lista) {
  14. List<List<Integer>> resultado = new ArrayList<>();
  15. List<Integer> parte = new ArrayList<>();
  16. Integer ultima = null;
  17. for (Integer i : lista) {
  18. int elemento = i;
  19. if (!parte.isEmpty() && (ultima == null || (elemento != ultima && elemento != ultima + 1))) {
  20. resultado.add(parte);
  21. parte = new ArrayList<>();
  22. }
  23. parte.add(elemento);
  24. ultima = elemento;
  25. }
  26. if (!parte.isEmpty()) resultado.add(parte);
  27. return resultado;
  28. }
  29.  
  30. public static void main(String[] args) {
  31. int[] array = {1, 2, 2, 3, 3, 3, 6, 6, 7, 11, 12, 12, 13, 14, 14};
  32. List<List<Integer>> lista = dividir(array);
  33. System.out.println(lista);
  34. }
  35. }
Success #stdin #stdout 0.14s 4386816KB
stdin
Standard input is empty
stdout
[[1, 2, 2, 3, 3, 3], [6, 6, 7], [11, 12, 12, 13, 14, 14]]