Java ArrayList of Objects没有得到项目的FinalList计数

时间:2015-08-10 13:17:07

标签: java arraylist size

我正在开发一个java代码,它将检索位于类别中的所有类别和相应的媒体。我正确地将所有类别列为正确列表,但不是内部的媒体。媒体总数为600+。单独打印正确的计数。但最终它只返回226.请帮助我解决这个问题。提前谢谢。

private static List<KalturaCategoryEntry> getCategoryMedia(
        List<KalturaCategory> openCategoryList) throws KalturaApiException,
        ParseException {
    List<KalturaCategoryEntry> categoryEntries = new ArrayList<KalturaCategoryEntry>();
    for (KalturaCategory category : openCategoryList) {
        KalturaCategoryEntryFilter categoryEntryFilter = new KalturaCategoryEntryFilter();
        categoryEntryFilter.categoryIdEqual = category.id;
        // categoryEntryFilter.statusEqual =
        // KalturaCategoryEntryStatus.ACTIVE;
        KalturaCategoryEntryListResponse categoryEntryList = getCategoryEntry(categoryEntryFilter);
        if (categoryEntryList.totalCount != 0) {
            System.out.println("categoryEntryList.totalCount ------>"
                    + categoryEntryList.totalCount);
            for (KalturaCategoryEntry entry : categoryEntryList.objects) {
                if (entry != null) {
                    categoryEntries.add(entry);
                }
            }
        }
    }
    System.out.println("Total Media ------- >" + categoryEntries.size());
    return categoryEntries;
}

这是输出:

categoryEntryList.totalCount ------>368
categoryEntryList.totalCount ------>2
categoryEntryList.totalCount ------>8
categoryEntryList.totalCount ------>2
categoryEntryList.totalCount ------>1
categoryEntryList.totalCount ------>17
categoryEntryList.totalCount ------>18
categoryEntryList.totalCount ------>1
categoryEntryList.totalCount ------>53
categoryEntryList.totalCount ------>37
categoryEntryList.totalCount ------>1
categoryEntryList.totalCount ------>2
categoryEntryList.totalCount ------>1
categoryEntryList.totalCount ------>7
categoryEntryList.totalCount ------>7
categoryEntryList.totalCount ------>6
categoryEntryList.totalCount ------>53
categoryEntryList.totalCount ------>2
categoryEntryList.totalCount ------>39
categoryEntryList.totalCount ------>1
Total Media ------- >226

2 个答案:

答案 0 :(得分:2)

可能categoryEntryList.totalCountcategoryEntryList.objects.size()

之间存在差异

尝试更改

System.out.println("categoryEntryList.totalCount ------>"
                    + categoryEntryList.totalCount);

System.out.println("categoryEntryList.totalCount ------>"
                    + categoryEntryList.objects.size());

你将获得真正的数量。

答案 1 :(得分:2)

if (categoryEntryList.totalCount != 0) {
    System.out.println("categoryEntryList.totalCount ------>"
            + categoryEntryList.totalCount);
    for (KalturaCategoryEntry entry : categoryEntryList.objects) {
        categoryEntries.add(entry);
    }
}

而不是

if (categoryEntryList.totalCount != 0) {
    System.out.println("categoryEntryList.totalCount ------>"
            + categoryEntryList.totalCount);
    for (KalturaCategoryEntry entry : categoryEntryList.objects) {
        if (entry != null) {
            categoryEntries.add(entry);
        }
    }
}

如果得到的结果不同,那么正如@sᴜʀᴇsʜʜ所暗示的那样,categoryEntryList.totalCount无法有效管理的对象列表中有空值。