作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个要随机化的枚举团队。所以我有:
public enum Teams { TEAM1, TEAM2, TEAM3, TEAM4, TEAM5, TEAM6; }
然后我有一个随机方法来随机生成值:
public static Teams getRandomTeam() {
return Teams.values()[(int) (Math.random() * Teams.values().length)];
}
这确实会返回一个随机生成的团队,但是我需要,一旦生成了一个团队,比如 TEAM2,它就不能再次生成。
我正在使用:
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
(我知道这是错误的,因为它一遍又一遍地调用方法。
在我运行程序的那一刻,输出可能是:
团队是:TEAM2
团队是:TEAM2
团队是:TEAM4
团队是:TEAM2
团队是:TEAM3
团队是:TEAM2
但我需要我的程序只输出一次枚举值。谢谢
最佳答案
只需使用 Collections.shuffle .
List<Team> teams = new ArrayList<>();
Collections.addAll(teams, Team.values());
Collections.shuffle(teams);
关于java - 连续生成随机枚举值而不两次获得相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145766/
我是一名优秀的程序员,十分优秀!