gpt4 book ai didi

Java检查空ArrayList作为类结构

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:12 25 4
gpt4 key购买 nike

我正在尝试创建类结构,如下例所示:

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;
}

关于Java检查空ArrayList作为类结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com