从数组列表中检索多个值

从数组列表中检索多个值

问题描述:

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

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

但是我现在要检索的值每行独立,从program.How我可以做到这一点其他类?通过单独我的意思是在ArrayList中得到每行的地址,邮件的linkID。

+0

如何识别一行?您可以使用HashMap 并通过某个标识符从地图获取。 – BobTheBuilder

+0

现在你有细节arrayList ..只需从函数返回它并使用迭代器 – Konza

但是我现在想要从程序中的另一个类中逐行检索值。如何才能做到这一点?

您只需访问列表中的每个NewSms即可。要通过索引来访问一个,你可以使用:

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

或者反过来访问它们的每一个,使用循环增强:

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

请注意,以符合Java的命名约定,你NewSms班级应该有方法,如getAddress,setAddress - 不是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(); 
+0

感谢您的评论乔恩,但我要检索不同类中的值,细节不会在这里工作。更像是一个方法返回数组列表above.so当我调用另一个类的方法时,我如何检索arraylist中的值?使用细节在这里无法工作。 –

+0

@mungaihkamau:好的,你需要让这个方法返回'ArrayList'。如果你的问题实际上是关于你如何从一种方法返回列表,那么如果你这么说的话,这将是有帮助的。将编辑我的答案。 –

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

但是我现在想从 程序中的另一个类别

您需要将arraylist传递给另一个类并在其中迭代以获取各个元素。这个想法是使用一个共同的araylist - 将结果集中的值存储在另一个类中并遍历它们。