Ich habe eine Liste von nicht bewerteten Artikel und ich möchte sie in 5 Falten aufgeteilt werden. Momentan habe ich getan, wie ich gerade versuche, gleichmäßig in Stücke aufzuteilen und das letzte ist ein sogenannter "erweiterter" Brocken und dies verursacht Probleme für mich.Split-Liste in "maximale" gleiche Größe Brocken
Wenn ich nonRatedItems = {1,2,3,4,5,6,7,8}
haben, dann die Stücke sind:
1
2
3
4
5 6 7 8
ich dies vermeiden wollen, so dass der Ausgang ist:
1 6
2 7
3 8
4
5
Stromquelle:
Collections.shuffle(nonRatedItems);
nonRatedItems = nonRatedItems.subList(0, (int) Math.ceil(nonRatedItems.size() * 0.2));
int tfoldSize = nonRatedItems.size()/5;
List<List<Integer>> negativeTestFolds = new ArrayList<List<Integer>>();
if (tfoldSize < 1) {
nonRatedItems.stream().map(Lists::newArrayList).collect(Collectors.toCollection(() -> negativeTestFolds));
} else {
for (int i = 0; i < 5; i++) {
int endIndex = i < 4 ? (i + 1) * tfoldSize : nonRatedItems.size();
negativeTestFolds.add(nonRatedItems.subList(i * tfoldSize, endIndex));
}
}
Alle Vorschlag/Hilfe wird geschätzt
Eigentlich wird es 'k' = Falten. Also wird "k" gegeben. Aber was ist, wenn 'i = 6 ', wie kommt es, dass es möglich ist,' falten [6] .add (nonRatedItems.get (6)); ' – Cap
@CollinD natürlich, habe ich es verpasst –
' falten [i% 5] .add (nonRatedItems.get (i)); ' – Cap