当前位置: 首页 > 面试题库 >

是否有通用的Java实用程序将列表分为几批?

宗弘扬
2023-03-14
问题内容

我为自己编写了一个实用程序,用于将列表分成给定大小的批次。我只是想知道是否已经有针对此的apache commons util。

public static <T> List<List<T>> getBatches(List<T> collection,int batchSize){
    int i = 0;
    List<List<T>> batches = new ArrayList<List<T>>();
    while(i<collection.size()){
        int nextInc = Math.min(collection.size()-i,batchSize);
        List<T> batch = collection.subList(i,i+nextInc);
        batches.add(batch);
        i = i + nextInc;
    }

    return batches;
}

请让我知道是否已经有相同的现有实用程序。


问题答案:

看看: Lists.partition(java.util.List, int)

返回列表的连续子列表,每个子列表大小相同(最终列表可能更小)。例如,对包含[a, b, c, d, e]分区大小为3 的列表进行分区将产生[[a, b, c],[d, e]]-一个外部列表,包含两个由三个和两个元素组成的内部列表,所有列表均按原始顺序排列。



 类似资料:
  • 我给自己写了一个实用程序来将列表分成给定大小的批次。我只是想知道是否已经有任何apache公共资源用于此。 请让我知道是否有任何现有的实用程序已经相同。

  • 问题内容: python中是否有将单词分解为单个字母列表的函数?例如: 要得到 问题答案: list(“Word to Split”) [‘W’, ‘o’, ‘r’, ‘d’, ‘ ‘, ‘t’, ‘o’, ‘ ‘, ‘S’, ‘p’, ‘l’, ‘i’, ‘t’]

  • 这是我面试问题的一部分。 给定一个整数序列作为一个数组,我必须确定是否可以通过从数组中移除不超过一个元素来获得一个严格递增的序列。 例如, 对于,输出应该是

  • 问题内容: 用Java实现此的最佳方法是什么?显然,泛型和通配符是为了能够轻松处理此类问题,但我正全神贯注。 如果有一个类似的方法来检查列表是否是相反的顺序,那也很好。 问题答案: Guava 通过其出色的Ordering类提供了此功能。An 是。在这种情况下,如果你具有实现的某种类型的列表,则可以编写: 这适用于任何,而不仅仅是,你可以通过指定s应该在其他任何非元素之前还是之后轻松地处理s :

  • 问题内容: 我所说的结构是: 操作复杂度O(log n) O(log n)查找元素的复杂度 O(n)复杂度进行计算,将被排序 问题答案: 标准Python列表不以任何形式排序。标准的heapq模块可用于将O(log n)追加到现有列表中,并删除O(log n)中最小的模块,但在定义中不是排序列表。 有许多符合您需求的Python平衡树实现,例如rbtree,RBTree或pyavl。

  • 问题内容: 我有一种从服务读取JSON的方法,我正在使用Gson进行序列化,并使用类型参数编写了以下方法。 我正在使用json,它仅返回一个类型数组,例如 我有一个映射到该对象的java类,我们称之为MyClass。但是,要使用我的方法,我需要这样做: 但是,我无法弄清楚这样做的语法。仅传递ArrayList.class不起作用。 因此,有什么方法可以摆脱Class参数,或者如何获取MyClass