20k보다 큰 임의의 크기 목록이 있습니다. 각 하위 목록의 길이가 동일하거나 길이가 같을 경우 하위 목록으로 나누는 방법은 무엇입니까 (홀수 목록의 경우?)?하나의 목록을 X 하위 목록으로 나누는 간단한 방법이 있습니까?
랜덤 크기이므로 구현시 정의 된 크기가 올바르지 않아야합니다.
것은 나는 현재이 템플릿에서 찾고 :
public static <T> List<List<T>> split(List<T> list, int size) throws NullPointerException, IllegalArgumentException {
if (list == null) {
throw new NullPointerException("The list parameter is null.");
}
if (size <= 0) {
throw new IllegalArgumentException("The size parameter must be more than 0.");
}
int num = list.size()/size;
int mod = list.size() % size;
List<List<T>> ret = new ArrayList<List<T>>(mod > 0 ? num + 1 : num);
for (int i = 0; i < num; i++) {
ret.add(list.subList(i * size, (i + 1) * size));
}
if (mod > 0) {
ret.add(list.subList(num * size, list.size()));
}
return ret;
}
이 하나가 생성되는 하위 목록을 다음 X의 하위 목록을 만들 알려진 하위 목록의 크기에 따라.
내가 필요로하는 결과는 LIST와 target sublistSize를 전달하는 것입니다. 그래서 크기 26346 레코드와 sublistSize 5 목록을 전달합니다. 나는 5 sublists 결국 것입니다. 처음 네 개의 하위 목록에는 5269 개의 레코드가 있고 마지막 다섯 번째 하위 목록에는 5270 개의 레코드가 있습니다.
특정 길이의 특정 하위 목록 또는 각 하위 목록을 원하십니까? – kuporific
순간에 나는 최대 5 개의 목록을 원할 것이고, 각 목록에는 대략 동일한 번호 레코드가 있습니다. – iCodeLikeImDrunk
하위 목록의 길이는 '길이'이고 일부는 길이가 길이 + 1입니다. 이러한 추가 긴 목록이 첫 번째 하위 목록, 마지막 하위 목록, 다른 모든 하위 목록, 다른 정렬이되어야합니까? – kuporific