0 java if-statement conditional-statements
我有这个代码
if(beforeModify.get(i).equals("a")|beforeModify.get(i).equals("e")|beforeModify.get(i).equals("i")|
beforeModify.get(i).equals("o")|beforeModify.get(i).equals("u")|beforeModify.get(i).equals("á")|
beforeModify.get(i).equals("é")|beforeModify.get(i).equals("í")|beforeModify.get(i).equals("?")|
beforeModify.get(i).equals("y")|beforeModify.get(i).equals("ý")|beforeModify.get(i).equals("?")|
beforeModify.get(i).equals("ú"))
Run Code Online (Sandbox Code Playgroud)
我可以做得更好吗?
And*_*ner 11
你可以把它写成一个List.contains电话:
if (Arrays.asList("a", "e", etc).contains(beforeModify.get(i))
Run Code Online (Sandbox Code Playgroud)
但你也可以预先构建一个Set,然后使用:
// Build once, keep the set to reuse.
Set<String> set = new HashSet<>(Arrays.asList("a", "e", etc));
if (set.contains(beforeModify.get(i))
Run Code Online (Sandbox Code Playgroud)
在HashSet具有作为优点O(1)中的元素的数目; 一个List会O(n).
另外:你正在使用|,而不是||.前者将评估所有操作数,后者将在其中一个匹配时立即停止.您不需要全部评估它们,因为String.equals在文字参数上没有副作用.使用||.