从数组列表中检索多个值
我已将从数据库检索到的值保存到数组列表中。 我已经使用一个类将数据保存到数组列表中,如下所示。从数组列表中检索多个值
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。
但是我现在想要从程序中的另一个类中逐行检索值。如何才能做到这一点?
您只需访问列表中的每个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();
感谢您的评论乔恩,但我要检索不同类中的值,细节不会在这里工作。更像是一个方法返回数组列表above.so当我调用另一个类的方法时,我如何检索arraylist中的值?使用细节在这里无法工作。 –
@mungaihkamau:好的,你需要让这个方法返回'ArrayList'。如果你的问题实际上是关于你如何从一种方法返回列表,那么如果你这么说的话,这将是有帮助的。将编辑我的答案。 –
for(NewSms smsdetails:details){
String address = smsdetails.get_address();
String message = smsdetails.get_message();
String linkId = smsdetails.get_linkid();
}
但是我现在想从 程序中的另一个类别
您需要将arraylist传递给另一个类并在其中迭代以获取各个元素。这个想法是使用一个共同的araylist - 将结果集中的值存储在另一个类中并遍历它们。
如何识别一行?您可以使用HashMap并通过某个标识符从地图获取。 –
BobTheBuilder
现在你有细节arrayList ..只需从函数返回它并使用迭代器 – Konza