簡體   English   中英

Java for 循環只存儲最后一個值

[英]Java for loop only storing last value

我在java android 中有一個for循環,它運行得很好,但它只存儲到它正在循環的列表中的最后一項。 我應該讓user_idlesson_id成為一個列表嗎? 我不知道從哪里開始,但這是我所做的。 該邏輯工作正常,但它只從兩個變量的列表中保存一項。

安卓工作室代碼:

// loop to add every user and lesson selected to watch
String user_id = null;
int lesson_id = 0;

for (int i = 0; i<attendees.size(); i++){
    for (int j = 0; j<lesson_iDs.size(); j++){
         user_id = attendees.get(i);
         lesson_id = lesson_iDs.get(j);
    }
}
// get the date for the classWatch
Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
Date currentTime = localCalendar.getTime();

// to show in patient activity (sends to SQLite)
watch = new Watch(currentTime, user_id, lesson_id);

這是正常的 ? 如果在循環外使用 user_id 和 course_id,則使用最后一個值。 你不想做這樣的事情:

// loop to add every user and lesson selected to watch
String user_id = null;
int lesson_id = 0;
// get the date for the classWatch
Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
Date currentTime = localCalendar.getTime();

for (int i = 0; i<attendees.size(); i++){
    for (int j = 0; j<lesson_iDs.size(); j++){
         user_id = attendees.get(i);
         lesson_id = lesson_iDs.get(j);
         // to show in patient activity (sends to SQLite)
         watch = new Watch(currentTime, user_id, lesson_id);
         // Do something with watch...
    }
}

每次這些循環運行時,attendees.get(i) 和 course_iDs.get(j) 的當前值都存儲在您的兩個變量(user_id、course_id)中,刪除最后存儲的值。 如果您想保留參加者和課程 ID 列表的所有值,則 user_id 和課程 ID 必須是列表,並且您必須在循環中向它們添加參加者.get(i) 和課程 iDs.get(j) 的當前值。

List<String> user_ids = new ArrayList<>();
List<Integer> lesson_ids = new ArrayList<>();

for (int i = 0; i<attendees.size(); i++){
    for (int j = 0; j<lesson_iDs.size(); j++){
         user_ids.add(attendees.get(i));
         lesson_ids.add(lesson_iDs.get(j));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM