java - 在没有大量循环的情况下确定字符串数组中的值是否相等
问题描述
我需要比较字符串数组中的值,使它们永远不相等,如果相等,则必须更改它们。我为此做了一个非常糟糕的寻找,但我想知道是否有更有效的解决方案。
String[] myAnswers = new String[myWords.size()];
myAnswers[0] = "s";
myAnswers[1] = "s";
myAnswers[2] = "s";
myAnswers[3] = "s";
myAnswers[4] = "s";
myAnswers[5] = "s";
while (myAnswers[0].equals(myAnswers[1]) || myAnswers[0].equals(myAnswers[2])
|| myAnswers[0].equals(myAnswers[3]) || myAnswers[0].equals(myAnswers[4])
|| myAnswers[1].equals(myAnswers[2]) || myAnswers[1].equals(myAnswers[3])
|| myAnswers[1].equals(myAnswers[4]) || myAnswers[2].equals(myAnswers[3])
|| myAnswers[2].equals(myAnswers[4]) || myAnswers[3].equals(myAnswers[4])
|| myAnswers[5].equals(myAnswers[0]) || myAnswers[5].equals(myAnswers[1])
|| myAnswers[5].equals(myAnswers[2]) || myAnswers[5].equals(myAnswers[3])
|| myAnswers[5].equals(myAnswers[4])) {
// Change values
}
解决方案
将数组转换为 HashSet(它将删除重复项)
Set<String> mySet = new HashSet<>(Arrays.asList(arr));
接着
while(mySet.size!=1){
//change values
}
推荐阅读
- javascript - 使用来自 Angular 2 或 4 应用程序的纯 JavaScript 代码?
- ruby-on-rails - rails mechanize .click undefined method `click' for #
- javascript - 如何导入
聚合物 3.x? - javascript - this.getView() 事件回调后返回 undefined
- rxjs - RxJS 返回一个带有数组有效负载的新对象
- html - ios 上的置顶位置在顶部有边距
- ansible - 在 WSL 中的 Ubuntu 上运行 Ansible 并使用主机执行 Ansible ping 时出现“没有名为‘异常’的模块”错误
- r - 用 NA 替换数据框第一列中的数字
- curl - 使用具有两个匹配范围的 cURL
- mysql - 在每个表中设置 ID_USR 是否正确(注册创建者)