我试图获得0到100之间的随机数.但是我希望它们是唯一的,而不是在序列中重复.例如,如果我得到5个数字,它们应该是82,12,53,64,32而不是82,12,53,12,32我使用它,但它在序列中生成相同的数字.
Random rand = new Random();
selected = rand.nextInt(100);
Run Code Online (Sandbox Code Playgroud) 假设我有以下模型结构:
@Entity
@Table(....)
public class AnnotationGroup{
...
private List<AnnotationOption> options;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "annotation_group_id", nullable = false)
public List<AnnotationOption> getOptions() {
return options;
}
}
Run Code Online (Sandbox Code Playgroud)
@Entity
@Table(...)
public class AnnotationOption {
private Long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Override
public Long getId() {
return id;
}
}
Run Code Online (Sandbox Code Playgroud)
目前,我有group1
带AnnotationOption
小号opt1
opt2
和opt3
然后我想用一个选项替换所有选项 opt1
另外我在数据库中有约束:
CONSTRAINT "UQ_ANNOTATION_OPTION_name_annotation_group_id" UNIQUE (annotation_option_name, annotation_group_id)
Run Code Online (Sandbox Code Playgroud)
这一个火上浇油:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value …
Run Code Online (Sandbox Code Playgroud) 可能重复:
O(1)中的唯一随机数?
我是Java新手.我想从给定的集合中生成一组随机数,并且数字也必须不重复.例如,可能的数字是[0,1,2,3]
,我想获得存储在数组中的三个随机唯一数字.防爆.[0,2,1], [2,3,1], [0,3,2]
等等