list.stream().skip(30 * i).limit(30).collect(Collectors.toList())
时间: 2024-04-28 21:23:19 浏览: 13
这是一个 Java 8 中的 Stream API 的链式调用,它可以将一个 List 集合按照一定规则分割成若干个小的 List 集合。其中,参数 i 表示需要跳过的元素数量,30 表示每个小的 List 集合中包含的元素数量。具体来说,它的作用是:从原始 List 集合中跳过前 30 * i 个元素,然后取出后面的 30 个元素,最后将这 30 个元素放到一个新的 List 集合中并返回。整个操作可以被重复执行,以便将原始 List 集合分割成若干个小的 List 集合。
相关问题
list.stream().skip().limit()
这是Java 8中对List进行流式操作的一种方式,具体含义如下:
- `skip(n)`:跳过前n个元素,返回剩余的元素作为一个新的流。
- `limit(n)`:获取前n个元素,返回一个新的流。
- `stream()`:将List转换为一个流。
举个例子,假设有一个List<Integer>,我们想获取其中第2到第4个元素组成的新List,代码如下:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> subList = list.stream().skip(1).limit(3).collect(Collectors.toList());
System.out.println(subList); // 输出 [2, 3, 4]
```
首先将List转换为流,然后使用`skip(1)`跳过第一个元素,再使用`limit(3)`获取前3个元素,最后使用`collect(Collectors.toList())`将结果转换为List。
splitlistutils.split
splitList是一个方法,它位于ListUtil类中。这个方法用于将一个列表分割成多个子列表,每个子列表的大小由limit参数确定。方法的返回值是一个包含分割后子列表的列表。方法的实现如下所示:
```java
public static <T> List<List<T>> splitList(List<T> list, int limit){
List<List<T>> lists = new ArrayList<>();
if(CollectionUtils.isEmpty(list)){
return lists;
}
int total = list.size();
long remain = total % limit; // 确认是否有余数
long times = total / limit; // 要分裂的次数
int count = remain == 0 ? times : times + 1; // 如果有余数,则多分裂一次
for(int i=0; i < count; i++){
List<T> appList = list.stream().skip(i*limit).limit(limit).collect(Collectors.toList());
lists.add(appList);
}
return lists;
}
```
这个方法可以用于将一个列表按照指定的大小分割成多个子列表。使用示例可以如下所示:
```java
List<List<BatchList>> lists = ListUtil.splitList(list,5000);
// 一次插入5000条
for(List<BatchList> sublist : lists){
xxxDAO.insert(sublist); // 数据持久层 保存入库
}
```
在这个示例中,ListUtil类的splitList方法被用于将名为list的列表按照每个子列表包含5000个元素的大小进行分割。然后,通过循环遍历分割后的子列表,并将每个子列表传递给数据持久层的insert方法进行保存入库操作。这样可以有效地处理大型列表,并且可以通过多线程操作进一步提高处理效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Listutil.SplitList 工具类方法编写,大量数据分批插入](https://blog.csdn.net/weixin_72014003/article/details/131322243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [多线程操作List](https://blog.csdn.net/weixin_42740540/article/details/125804171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)