簡體   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