哪种方式更好?
if ("Pablo".equals(name) || "Marko".equals(name) || .. );
或
if (Sets.newHashSet("Pablo", "Marko", ..).contains(name));
关于使用内存,性能,可读性的兴趣
答案 0 :(得分:4)
if语句将采用线性时间(O(n)),因为它具有n
条件,以便在最坏的情况下进行评估。
Set.contains
变体需要线性时间来构建Set
(添加n
元素),但只需要一段时间来搜索Set
特定值。< / p>
因此,如果多次运行此条件(对于同一组值),
创建Set
一次并多次重复使用将比多次运行if语句更有效。