【发布时间】:2016-05-25 19:36:50
【问题描述】:
假设您有一个字符串数组 arr,其中包含 3 个字符串。要比较它的值,您只需执行以下操作:
if (arr[0].equals(arr[1]) && arr[0].equals(arr[2] && arr[1].equals(arr[2]) {
return true;
}
但是如果这个数组有数百个字符串呢?比较所有值的最佳方法是什么?
我曾想过使用 for 循环,但 Java 不允许在条件中使用循环。有什么想法吗?
【问题讨论】:
-
但它确实允许循环内的条件......
-
另外,不需要您的第三次检查。如果 a == b AND a == c,那么由于transitivity,我们已经知道 b == c。检查每个元素是否等于第一个就足够了。
-
更好的方法是不要在数据结构中放置重复的字符串。这意味着您应该考虑使用哈希表或类似的东西。以 O(1) 的效率结束。
-
您使用的是什么版本的 Java?
-
@azurefrog 我试图将循环放在条件中,而不是在循环中放置条件。例如,if(for 循环){}