Liste de partitions Java 8

Est-il possible de partitionner une Liste dans le plus pur Jdk8 à l'égalité des morceaux (sous-listes).

Je sais que c'est possible à l'aide de Goyave Listes classe, mais on peut le faire avec de la pure Jdk? Je ne veux pas ajouter de nouveaux pots pour mon projet, juste pour un cas d'utilisation.

SOLUTONS:

La meilleure solution jusqu'à maintenant, a été présenté par tagir-valeev:

J'ai aussi trouvé trois autres possibilitésmais ils sont ment pour seulement quelques cas:

1.Des collectionneurs.partitioningBy() pour diviser la liste en 2 sous-listes – comme suit:

intList.stream().collect(Collectors.partitioningBy(s -> s > 6));
    List<List<Integer>> subSets = new ArrayList<List<Integer>>(groups.values());

2.Des collectionneurs.groupingBy() pour diviser notre liste de plusieurs partitions:

 Map<Integer, List<Integer>> groups = 
      intList.stream().collect(Collectors.groupingBy(s -> (s - 1) / 3));
    List<List<Integer>> subSets = new ArrayList<List<Integer>>(groups.values());

3.Diviser par le séparateur:

List<Integer> intList = Lists.newArrayList(1, 2, 3, 0, 4, 5, 6, 0, 7, 8);

    int[] indexes = 
      Stream.of(IntStream.of(-1), IntStream.range(0, intList.size())
      .filter(i -> intList.get(i) == 0), IntStream.of(intList.size()))
      .flatMapToInt(s -> s).toArray();
    List<List<Integer>> subSets = 
      IntStream.range(0, indexes.length - 1)
               .mapToObj(i -> intList.subList(indexes[i] + 1, indexes[i + 1]))
               .collect(Collectors.toList());

source d'informationauteur Beri | 2015-06-23