繁体   English   中英

从数组列表中检索多个值

[英]Retrieving multiple values from an arraylist

我已将从Java中的数据库检索到的值保存到arraylist中。 我已经使用一个类将数据保存到数组列表,如下所示。

    ArrayList<NewSms> details = new ArrayList<NewSms>();
    try{
        Statement query = conn.createStatement();
        ResultSet result = query.executeQuery("Select `senderAddress,message,linkid from sdp_smsincoming where status=0 AND smsServiceActivationNumber =1234 ");`

        while(result.next()){
            String address = result.getString("senderAddress");
            String message = result.getString("message");
            String linkid = result.getString("linkid");

            NewSms smsdetails = new NewSms();
            smsdetails.set_address(address);
            smsdetails.set_message(message);
            smsdetails.set_linkid(linkid);
            details.add(smsdetails);;
        }
    }

但是我现在想从程序中的另一个类中每行分别获取值。我该怎么做呢?我分别是指获取arraylist中每行的地址,消息和linkid。

但是我现在想从程序的另一个类中每行分别检索值。我该怎么做?

您只需访问列表中的每个NewSms 要按索引访问一个,可以使用:

NewSms sms = details.get(2); // Or whatever
// Now access the properties of sms

或者依次访问它们中的每一个,请使用增强的for循环:

for (NewSms sms : details) {
    // Now access the properties of sms
}

请注意,为了遵守Java命名约定,您的NewSms类应具有诸如getAddresssetAddress -not set_address类的方法。

还要注意,您需要关闭结果集/语句/连接-如果您使用的是Java 7,则可以使用try-with-resources语句。 否则,您应该使用finally块。

编辑:如果您的问题实际上只是返回列表,那很简单:

public List<NewSms> loadSmsDetails() {
    // Code as before...

    return details;
}

然后从其他班级调用它:

// Where repository is a reference to an instance of the class containing the above method
List<NewSms> allDetails = repository.loadSmsDetails();
for(NewSms smsdetails:details){ 
String address = smsdetails.get_address();
String message = smsdetails.get_message();
String linkId = smsdetails.get_linkid();
}

但是我现在想从程序的另一个类中每行分别获取值

您需要将arraylist传递给另一个类,并在那里进行迭代以获得单个元素。 这个想法是使用一个通用的列表-存储结果集中的值,并在另一个类中迭代它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM