java - 在 Java 中将较大的集合(集合、数组、列表)拆分为较小的集合,并跟踪最后一个返回的集合

标签 java arrays list collections

public Collection<Comment> getCommentCollection() {
   commentCollection = movie.getCommentCollection();       
   return split((List<Comment>) commentCollection, 4);
}

public Collection<Comment> split(List<Comment> list, int size){

     int numBatches = (list.size() / size) + 1;
     Collection[] batches = new Collection[numBatches];
     Collection<Comment> set = commentCollection;

     for(int index = 0; index < numBatches; index++) {
         int count = index + 1;
         int fromIndex = Math.max(((count - 1) * size), 0);
         int toIndex = Math.min((count * size), list.size());
         batches[index] = list.subList(fromIndex, toIndex);
         set = batches[index];
     }

     return set;
 }

我正在尝试将较大的集合拆分为较小的集合,具体取决于原始集合中的项目数。然后在每次调用 get 方法时返回较小的集合之一,同时跟踪返回的是哪个较小的集合。我怎样才能做到这一点?

最佳答案

也许我不明白这个问题,但这是列表的一部分:

List<E> subList(int fromIndex, int toIndex)

Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive. (If fromIndex and toIndex are equal, the returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list operations supported by this list.

This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list:

list.subList(from, to).clear();

docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html

关于java - 在 Java 中将较大的集合(集合、数组、列表)拆分为较小的集合,并跟踪最后一个返回的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222497/

相关文章:

java - Elasticsearch 未在 Java 搜索 API 中返回任何匹配项

javascript - 如何在对象构造函数中使用 Map 数组函数

java - 返回不包含在另一个元素中的元素列表 [JAVA/ANDROID]

arrays - 如何在mongodb中连接数字和字符串值?

javascript - 检查 Array.toJSON 是否已在 JavaScript 中被覆盖

c++ - 如何添加到 Qt 书籍示例中,例如将项目添加到列表的可能性?

java - 将 ImmutableList 转换为 List

java - 在 Android 中使用 MySql 项目将 JSON 转换为字符串

java - 比较和对比 Java 和 Delphi 中的接口(interface)

java - 有没有办法重用一个可观察值,直到第二个可观察值在 zip 中得到 onComplete() ?