簡體   English   中英

從列表中隨機選擇用戶到另一個列表

[英]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.

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