java - 乘以 if 语句与 collection.contains

标签 java if-statement collections

哪种方式更好?

if ("Pablo".equals(name) || "Marko".equals(name) || .. ); 

if (Sets.newHashSet("Pablo", "Marko", ..).contains(name));

对内存使用、性能、可读性感兴趣

最佳答案

if 语句将花费线性时间 (O(n)),因为它有 n 条件来评估最坏情况。

Set.contains 变体将花费线性时间来构建 Set(添加 n 元素),但只需常数时间来搜索设置为特定值。

因此,如果您多次运行此条件(针对同一组值), 创建一次 Set 并多次重复使用它比多次运行 if 语句更有效率。

关于java - 乘以 if 语句与 collection.contains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49490290/

相关文章:

javascript - 如何浏览/收集网页的音频资源?

java - 如果 ArrayList 的已排序 Collection 扩展到超过其初始大小,它会变为未排序吗?

带套接字的 Java 客户端和 PHP 服务器

java - Jackson fastxml ObjectMapper defaultPrettyPrintingWriter() 方法未定义需要替换

java - 使用等待通知,我的方法有什么问题

c# - 在 if block 内部返回或编写 if/else block 之间是否存在性能差异?

java - 在 Java 中将 Vector 转换为 HashSet

Java 枚举作为整数、扫描仪和菜单选项

if-statement - Twig:在if语句中通过键获取数组元素

excel - 从 Excel 中的单元格中获取是、否或什么都没有