【发布时间】:2015-11-10 17:38:52
【问题描述】:
我有以下代码:
String[] names = {"aa", ..........., "bb"};
for (int i = 0; i < names.length; i++) {
if (names[i].toLowerCase().startsWith(query.toLowerCase()))
c.addRow(new Object[]{i, names[i]});
}
由于数组名称可能很长,我想知道从性能的角度来看,编写此代码的最佳方法是什么。这样循环是O(N)。是否有任何 java 数据结构可以更快地完成同样的事情?
【问题讨论】:
-
数组“名称”是否按字典顺序排列?
-
如果
names已排序,您可以对第一个正确值进行二分搜索,然后在数组中前后循环以查找其余匹配项,这应该差不多有效尽可能
标签: java