从arraylist中检索多个值

mun*_* pk 1 java 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);;
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是我现在想要从程序中的另一个类中每行单独检索值.我怎么能这样做?我个人意味着在arraylist中获取每行的地址,消息和linkid.

Jon*_*eet 5

但是我现在想要从程序中的另一个类每行单独检索值.我怎么能这样做?

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

NewSms sms = details.get(2); // Or whatever
// Now access the properties of sms
Run Code Online (Sandbox Code Playgroud)

或者依次访问每个,使用增强的for循环:

for (NewSms sms : details) {
    // Now access the properties of sms
}
Run Code Online (Sandbox Code Playgroud)

请注意,为了符合Java命名约定,您的NewSms类应该具有诸如的方法getAddress,setAddress而不是set_address.

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

编辑:如果您的问题实际上只是返回列表,这很容易:

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

    return details;
}
Run Code Online (Sandbox Code Playgroud)

然后从其他类中调用它:

// Where repository is a reference to an instance of the class containing the above method
List<NewSms> allDetails = repository.loadSmsDetails();
Run Code Online (Sandbox Code Playgroud)