java 将list均分
时间: 2023-09-06 14:07:40 浏览: 50
你可以使用 Java 中的 `subList` 方法来实现列表均分。下面是一个实现列表均分的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class ListDivider {
public static <T> List<List<T>> divideList(List<T> list, int n) {
int size = list.size() / n;
int leftovers = list.size() % n;
List<List<T>> result = new ArrayList<>();
int index = 0;
for (int i = 0; i < n; i++) {
int count = size + (leftovers-- > 0 ? 1 : 0);
result.add(list.subList(index, index + count));
index += count;
}
return result;
}
}
```
函数 `divideList` 接受两个参数:要均分的列表 `list` 和要分成的份数 `n`。它首先计算出每份应该包含的元素数量 `size`,以及剩余的元素数量 `leftovers`。然后,使用 `for` 循环来分别获取每个子列表的起始索引和结束索引,并使用 `subList` 方法从原始列表中获取子列表。如果还有剩余的元素,它们将被平均分配给各个子列表,直到没有剩余元素为止。最后,函数返回分割后的列表。
例如,将列表 `[1, 2, 3, 4, 5, 6, 7, 8, 9]` 分成 3 份,可以使用以下代码:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<List<Integer>> result = ListDivider.divideList(list, 3);
System.out.println(result);
```
输出:
```
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
```