Java 从列表中随机选择用户到另一个列表

Java 从列表中随机选择用户到另一个列表,java,list,random,Java,List,Random,我尝试从以下列表中随机选择用户: private static List<User> users = new ArrayList<>(); private static List users=new ArrayList(); 在这一点上: private static List<Lunchpairs> pairs = new ArrayList<>(); private static List pairs=new ArrayList();

我尝试从以下列表中随机选择用户:

private static List<User> users = new ArrayList<>();
private static List users=new ArrayList();
在这一点上:

private static List<Lunchpairs> pairs = new ArrayList<>();
private static List 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;

}
publicstaticlist getPairs()引发NoUserException{
if(users.isEmpty()){
抛出新的NoUserException(“无参与者”);
}
对于(int i=0;i<2;i++){
随机选取对=新随机();
午餐对randomPairs=users.get(pickPairs.nextInt(users.size());
配对。添加(随机配对);
}
返回对;
}
但它不是这样工作的。我想问题是我无法从
列表中获取姓名,并将其放入
列表中。(如果我不对,请告诉我)


如何解决此问题?

假设
午餐对
有一个构造函数,可以同时使用两个用户,那么这应该可以满足您的需要:

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;
}
publicstaticlist getPairs()引发NoUserException{
if(users.isEmpty()){
抛出新的NoUserException(“无参与者”);
}
List shuffeledUsers=新的ArrayList(用户);
集合。洗牌(shuffeledUsers);
对于(int i=0;i

对于奇数用户,最后一个用户根本没有午餐。您必须将其添加到上面的代码中。

我们可能需要查看
用户
启动对
类才能帮助您。目前,您似乎正在尝试将一个
User
对象分配给一个
Launchpairs
对象。您所说的“它不是这样工作的”是什么意思?Eclipse告诉我:类型不匹配:无法从用户转换为午餐对
Launchpairs
User
之间的关系是什么?“User”包含名为的用户,姓氏、邮件、部门。我正在尝试从“列表”中选择两个用户,并将它们放入“列表”。午餐对类有一个带getter和setter的“user1”和“user2”。另一个问题:构造函数午餐对(User,User)未定义。