从arraylist中检索多个值

时间:2013-08-28 08:28:22

标签: 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);;
        }
    }

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

3 个答案:

答案 0 :(得分:5)

  

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

您只需访问列表中的每个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 - 而不是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();

答案 1 :(得分:0)

for(NewSms smsdetails:details){ 
String address = smsdetails.get_address();
String message = smsdetails.get_message();
String linkId = smsdetails.get_linkid();
}

答案 2 :(得分:0)

  

但是我现在想要从每行单独检索值   程序中的另一个类

你需要将arraylist传递给另一个类并在那里迭代它以获得各个元素。我们的想法是使用一个通用的araylist - 来存储结果集中的值,并存储在另一个类中以迭代它们。