![](/img/trans.png)
[英]Pick numbers randomly and uniquely until finished from an array list and assign to variables in another list in Android
[英]Pick randomly user from list to another list
我正在嘗試從此列表中隨機選擇用戶:
private static List<User> users = new ArrayList<>();
進入這個:
private static List<Lunchpairs> pairs = new ArrayList<>();
這是我的代碼:
public static List<Lunchpairs> getPairs() throws NoUserException{
if(users.isEmpty()){
throw new NoUserException("No participants.");
}
for(int i=0; i< 2; i++){
Random pickPairs = new Random();
Lunchpairs randomPairs = users.get(pickPairs.nextInt(users.size()));
pairs.add(randomPairs);
}
return pairs;
}
但這不是這樣的。 我認為問題是我無法從List<User>
獲得名稱並將其放入List<Lunchpairs>
。 (如果我做錯了,請告訴我)
我怎么解決這個問題?
假設Lunchpairs
具有一個構造函數,並且需要兩個用戶,那么這應該做您想要的:
public static List<Lunchpairs> getPairs() throws NoUserException{
if(users.isEmpty()){
throw new NoUserException("No participants.");
}
List<User> shuffeledUsers = new ArrayList<>(users);
Collections.shuffle(shuffeledUsers);
for(int i=0; i < shuffeledUsers.size() / 2; i++){
User user1 = shuffeledUsers.get(i * 2);
User user2 = shuffeledUsers.get(i * 2 + 1);
Lunchpairs randomPair = new Lunchpairs(user1, user2);
pairs.add(randomPair);
}
return pairs;
}
對於奇數的用戶,最后一個用戶根本沒有午餐。 您必須將其添加到上面的代碼中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.