java - Simplify unique String check in a Set
问题描述
I wanna generate unique String Ids until it is unique.
My approach is:
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);
}
}
My question: is there a better way to implement this?
解决方案
Set 的主要目的是保证没有重复的元素。add
一个元素已经检查过了。
使用的返回值来add
查看 id 是否已经在Set
:
String randomId = getRandomId();
while (!uniqueIdSet.add(randomId)) {
randomId = getRandomId();
}
编辑:看看上面安德烈亚斯的评论,这更好。
推荐阅读
- angular - 我们可以在Angular中将回调函数与类属性绑定吗
- dart - 在 dart 中导入静态方法
- java - 使用 google firebase auth 的用户个人资料图片 url 为空
- javascript - 在浏览器中以全屏模式播放视频时是否可以隐藏 android 导航栏?
- android-service - Androidx ServiceTestRule 找不到我的服务
- c++ - constexpr 算法 all_of 编译器错误
- ios - SwiftUI 中 UICollectionViewController 的替代品是什么?
- c++ - 在 CPP 运行时选择随机数生成器
- javascript - 如何在元素单击时获取对象属性?
- linux - 如何在 GitLab runner 容器中安装包?