3
나는 등급이 매겨지지 않은 항목의 목록을 가지고 있으며 나는 5 배로 분할 되길 원합니다. 현재, 나는 단지 덩어리로 균등하게 분할하려고 시도하고 마지막 하나는 "확장 된"덩어리라고 불리는이 일은 나에게 문제를 일으킨다. 내가 nonRatedItems = {1,2,3,4,5,6,7,8}
있을 때목록을 "최대"동등 크기 청크로 분할
, 다음 청크는 다음과 같습니다
1 6
2 7
3 8
4
5
현재 소스 :
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));
}
}
모든 출력이되도록
1
2
3
4
5 6 7 8
내가이 문제를 방지하려면 제안/도움을 환영합니다
실제로 'k' = 주름이 있습니다. 그래서'k'가 주어집니다. 그러나, 만약'i = 6'이라면, 어떻게'folds [6] .add (nonRatedItems.get (6));' – Cap
@CollinD 물론 그것을 놓친 것일까 요 –
'folds [i % 5] .add (nonRatedItems.get (i));' – Cap