我想生成唯一的字符串ID,直到它唯一为止。
我的方法是:
private Set<String> uniqueIdSet = new HashSet<>();
...
boolean contains = uniqueIdSet.contains(getRandomId());
while (contains){
var randomId = getRandomId();
contains = uniqueIdSet.contains(randomId);
if (!contains){
uniqueIdSet.add(randomId);
}
}
我的问题:是否有更好的方法来实现这一目标?
最佳答案
Set的主要目的是确保没有重复的元素。 add
元素已经进行了检查。
使用add
中的the return value来查看ID是否已经在Set
中:
String randomId = getRandomId();
while (!uniqueIdSet.add(randomId)) {
randomId = getRandomId();
}
编辑:看看上面的Andreas的评论,这甚至更好。