简化集合中的唯一字符串检查
Simplify unique String check in a Set
我想生成唯一的字符串 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 的评论,它更好。
我想生成唯一的字符串 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 的评论,它更好。