如何检查ArrayList是否包含特定值

时间:2018-05-02 19:26:42

标签: android

谁能告诉我为什么这些不起作用?如果这些对我有用,它会回答我的所有问题,请帮助我:

for (int i = 0; i < records.size(); i++) {
    JSONObject jsonObject = new JSONObject();
    if (Scanner.listOfBarcodes.contains(records.get(i).getsid())) {
        jsonObject.put("attendance","Present");
    } else {
        jsonObject.put("attendance","Absent");
    }

listOfBarcodes是一个ArrayList,其中包含一系列扫描的条形码值,这些值是3924,3922...

之类的学生ID号

但它始终将缺席置于JSONObject。为什么会这样?请帮我。

这是我的可序列化java类:

public class Student {

    private String sid;

    public void setsid(String sid){
        this.sid=sid;
    }

    public String getsid(){
        return sid;
    }
}

1 个答案:

答案 0 :(得分:0)

我可能能够通过更多代码更好地帮助确保答案,但我相信问题是函数contains()期望作为参数获取相同类型的对象从它调用的ArrayList。

您需要调试它并检查records.get(i).getsid()的返回值与ArrayList listOfBarcodes的类型相同。

也许尝试将其分配给临时值,如下所示并检查它返回的内容并与此临时项进行比较,问题可能在于保存值而不是检索它(您的调用可能返回null)< / em>如下:

String tempSid = records.get(i).getsid();
if (Scanner.listOfBarcodes.contains(tempSid)) {
        jsonObject.put("attendance","Present");
    }