簡體   English   中英

Java將空ArrayList檢查為類結構

[英]Java check empty ArrayList as an class structure

我正在嘗試創建本示例中的類結構:

public class SubjectListStructure {
    public String topic_id;
    public String topic_title;
    public String created_date;
    public String avatar_url;
    public String vote;
    public String name_family;
}

現在,我想創建一個由這些對象組成的ArrayList:

ArrayList<SubjectListStructure> nSubjects = = new ArrayList<SubjectListStructure>();

但是現在我無法檢查nSubjects是否為空或是否包含一些與此代碼類似的數據:

public static Boolean ContainsAllNulls(ArrayList<SubjectListStructure> arrList)
{
    if(arrList != null)
    {
        for(SubjectListStructure a : arrList)
            if(a != null) return false;
    }

    return true;
}

nSubjects.isEmpty()此解決方案和ContainsAllNulls(nSubjects)無法正確檢查並返回錯誤結果

首先,您不應該在列表中允許null 在這種情況下,簡單的List.isEmpty()會告訴您列表是否為空。

如果您不能或不想禁止null ,那么您的代碼可以正常工作,並且可以正確測試列表是否僅包含null

您甚至不必將其與isEmpty()方法結合使用,因為增強的for可以用於空列表和數組(在這種情況下, for的正文將不會執行)。

你可以概括你的代碼是這樣的,其適用於不只是ArrayList秒,但對所有Collection S(單,套等),並與任何元素類型不只是你的自定義SubjectListStructure類型:

public static boolean emptyOrAllNulls(Collection<?> c) {
    if (c != null)
        for (Object o : c)
            if(o != null)
                return false;

    return true;
}    

請注意,增強的for使用Collection.iterator()獲得Iterator以遍歷集合的元素。 如果集合為空,則首先檢查集合是否包含任何元素並且不通過迭代器會更有效:

public static boolean emptyOrAllNulls(Collection<?> c) {
    if (c != null && !c.isEmpty())
        for (Object o : c)
            if(o != null)
                return false;

    return true;
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM