您当前的位置: 首页 > 

Guava常用集合操作API

发布时间:2021-07-25 19:15:19 ,浏览量:0

Lists partition

将list集合按指定长度进行切分,返回新的List

import com.google.common.collect.Lists; import org.junit.Test; import java.util.List; public class testList { @Test public void test(){ List<Integer> numList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8); List<List<Integer>> lists=Lists.partition(numList,3); System.out.println(lists); //[[1, 2, 3], [4, 5, 6], [7, 8]] } } 

坑: 项目中使用 Lists.Partition 批量处理数据,但是最近内存一直 OutOffMemory,GC无法回收。 后来对使用过的集合手动 clear,没有测试直接就上线了。尴尬的是内存回收了,但是跑出来的数据出问题了。 最后自己单元测试发现是

List<List<TreasureIntegrationVo>> resultPartition = Lists.partition(list, 500) 

之后再对 list 进行 clear 操作,resultPartition也会被清空。因为它最终会调用 list.subList。subList 执行结果是获取 ArrayList 的一部分,返回的是 ArrayList 的部分视图。 对子集合的操作会反映到原集合, 对原集合的操作也会影响子集合!

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    115984博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0845s