java 怎么将list 均分成多个
时间: 2023-03-25 09:02:40 浏览: 134
可以使用Java8的Stream API来实现将List均分成多个子List的操作。具体实现代码如下:
```java
public static <T> List<List<T>> splitList(List<T> list, int size) {
return IntStream.range(, (list.size() + size - 1) / size)
.mapToObj(i -> list.subList(i * size, Math.min((i + 1) * size, list.size())))
.collect(Collectors.toList());
}
```
其中,list参数为需要分割的List,size参数为每个子List的大小。该方法返回一个List,其中包含了均分后的多个子List。
相关问题
java把list分成多个list
在Java中实现将一个List分成多个List的过程,可以采用以下的方法:
1.使用subList()方法:
Java List接口中的subList()方法可以实现将一个List分成多个List的效果。具体实现步骤为先计算出要分成的List的个数,然后把原List按照指定的块数分成多个子List,最后把每个子List都添加到一个大的List中。
public List<List<T>> splitList(List<T> list, int blockSize) {
int size = list.size();
int block = size / blockSize;
if (size % blockSize > 0) {
block++;
}
List<List<T>> lists = new ArrayList<List<T>>(block);
for (int i = 0; i < block; i++) {
int fromIndex = i * blockSize;
int toIndex = (i + 1) * blockSize;
if (toIndex > size) {
toIndex = size;
}
List<T> sublist = list.subList(fromIndex, toIndex);
lists.add(sublist);
}
return lists;
}
2.自定义分割方法:
我们也可以自定义实现List分割的方法。这种方法的主要思想是通过循环把原List中的元素逐一添加到一个新的ArrayList中,直到达到指定的分割条件为止。
public List<List<T>> splitList(List<T> list, int chunkSize) {
List<List<T>> chunks = new ArrayList<List<T>>();
for (int i = 0; i < list.size(); i += chunkSize) {
int end = i + chunkSize;
if (end > list.size()) {
end = list.size();
}
chunks.add(list.subList(i, end));
}
return chunks;
}
总之,Java中实现将一个List分成多个List的方法有很多,以上只是其中较为常用的两种方法。在实际应用中,我们可以根据具体需求选择合适的方法。
JAVA中list按照长度分成多个list
在 Java 中,如果你想将 List 划分成多个 List,每个 List 的大小基于指定长度,你可以采用循环迭代的方式逐个添加元素到新的列表中。这里有一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
public class ListSplitter {
public static void main(String[] args) {
// 原始的 List
List<String> originalList = new ArrayList<>();
// 添加一些元素
originalList.add("Element1");
originalList.add("Element2");
originalList.add("Element3");
originalList.add("Element4");
originalList.add("Element5");
int sublistLength = 3; // 指定每个新子列表的长度
// 创建新的 List 列表用于存放结果
List<List<String>> subLists = new ArrayList<>();
// 分割原始 List
for (int i = 0; i < originalList.size(); ) {
List<String> subList = new ArrayList<>(); // 新建一个子列表
while (i + sublistLength <= originalList.size()) {
subList.addAll(originalList.subList(i, i + sublistLength));
i += sublistLength; // 更新索引
}
if (!subList.isEmpty()) { // 如果还有剩余元素,添加到子列表
subList.addAll(originalList.subList(i, originalList.size()));
}
subLists.add(subList); // 将子列表加入结果列表
}
// 打印分割后的子列表
for (List<String> slicedList : subLists) {
System.out.println("Sliced List: " + slicedList);
}
}
}
```
在这个例子中,`sublistLength`变量决定了每个子列表的长度。循环遍历原列表,并根据长度条件创建新的子列表。如果到达了原列表的结尾还没有填充满当前子列表,就直接把剩下的元素添加进去。
阅读全文