Java ArrayList Total Count



我有一个需求,需要循环遍历Java对象列表并添加到ArrayList。它正确地给出了Java对象的单个计数,但不是所有对象的最终计数。不确定我哪里做错了。这就是输出。预期应为5945。请帮我解决这个问题。

我尝试将列表声明为静态全局变量,但仍然遇到了同样的问题。

categoryEntryList --------->10
categoryEntryList --------->12
categoryEntryList --------->53
categoryEntryList --------->2
categoryEntryList --------->35
categoryEntryList --------->79
categoryEntryList --------->4355
categoryEntryList --------->1
All Category Entries size ------->692

这是代码:

private static List<CategoryEntry> getCategoryMedia(
        List<Category> categoryList) throws KalturaApiException,
        ParseException {
    int index = 1;
    List<CategoryEntry> categoryEntries = new ArrayList<CategoryEntry>();
    List<CategoryEntry> finalEntries = new ArrayList<CategoryEntry>();
    for (Category category : categoryList) {
        CategoryEntryFilter filter = new CategoryEntryFilter();
        FilterPager pager = new FilterPager();
        pager.pageIndex = index;
        pager.pageSize = 500;
        filter.categoryIdEqual = category.id;
        filter.statusEqual = CategoryEntryStatus.ACTIVE;
        CategoryEntryListResponse categoryEntryList = getCategoryEntry(filter, pager);
        if (categoryEntryList.totalCount != 0) {
            System.out.println("categoryEntryList --------->"+categoryEntryList.totalCount);
            for (CategoryEntry entry : categoryEntryList.objects) {
                if (entry != null) {
                    categoryEntries.add(entry);
                }
            }
        }
    }
    index ++;
    finalEntries.addAll(categoryEntries);
    //System.out.println("Total Media ------- >"
    //+ finalEntries.size());
    return finalEntries;
}
protected static CategoryEntryListResponse getCategoryEntry(
        CategoryEntryFilter filter, FilterPager pager)
        throws KalturaApiException {
    CategoryEntryService categoryEntryService = client
            .getCategoryEntryService();
    CategoryEntryListResponse categoryEntryList = categoryEntryService
            .list(filter, pager);
    return categoryEntryList;
}

谢谢,Rajyalakshmi S

显然,有些元素是null,由于条件的原因,没有添加到最终列表中。这可能与list(...)实现和/或CategoryFilter filter有关,因为我们没有看到源代码。

您应该保持一个连续的计数

int tally = 0; //declare and assign tally
for (Category category : categoryList) {
    CategoryEntryFilter filter = new CategoryEntryFilter();
    FilterPager pager = new FilterPager();
    pager.pageIndex = index;
    pager.pageSize = 500;
    filter.categoryIdEqual = category.id;
    filter.statusEqual = CategoryEntryStatus.ACTIVE;
    CategoryEntryListResponse categoryEntryList = getCategoryEntry(filter, pager);
    if (categoryEntryList.totalCount != 0) {
        System.out.println("categoryEntryList --------->"+categoryEntryList.totalCount);
        tally += categoryEntryLIst.totalCount; //accumulate tally
        for (CategoryEntry entry : categoryEntryList.objects) {
            if (entry != null) {
                categoryEntries.add(entry);
            }
        }
    }
}
System.out.println("All Category entry size ----------->" + tally); // print tally

最新更新