0
点赞
收藏
分享

微信扫一扫

Java中list用spliit分1000一组快,还是用iter迭代器快

在 Java 中,将一个 List 分割成多个大小为 1000 的子列表,可以采用两种方式:使用 split 方法和使用迭代器(Iterator)。

  1. 使用 split 方法:

List<Integer> originalList = ...; // 原始的 List

List<List<Integer>> subLists = new ArrayList<>();
for (int i = 0; i < originalList.size(); i += 1000) {
    int endIndex = Math.min(i + 1000, originalList.size());
    List<Integer> subList = originalList.subList(i, endIndex);
    subLists.add(subList);
}

这种方法使用 subList 方法将原始列表划分成多个子列表。但需要注意的是,subList 方法返回的是原始列表的一个视图,对子列表的修改会反映到原始列表上。

  1. 使用迭代器:

List<Integer> originalList = ...; // 原始的 List

List<List<Integer>> subLists = new ArrayList<>();
Iterator<Integer> iterator = originalList.iterator();
while (iterator.hasNext()) {
    List<Integer> subList = new ArrayList<>();
    for (int i = 0; i < 1000 && iterator.hasNext(); i++) {
        subList.add(iterator.next());
    }
    subLists.add(subList);
}

这种方法使用迭代器遍历原始列表,并逐个取出元素放入子列表中。每当子列表达到 1000 个元素或者原始列表遍历完成时,就将当前子列表添加到结果列表中。

对于大部分情况而言,使用迭代器比使用 split 方法更高效,因为迭代器只需要遍历一次原始列表,并逐个取出元素。而使用 split 方法则需要创建多个子列表,并进行切片操作。但对于非常大的列表,可能会出现内存消耗较大的情况,此时可以考虑分批读取数据以减少内存占用。

举报

相关推荐

0 条评论