java - 快速搜索 java.util.LinkedList 数组中的元素
问题描述
嘿,我正在寻找一种更好的方法来搜索 LinkedLists 数组中的字符串元素。
public static void main(String[] args) {
int m = 1000;
LinkedList<String>[] arrayOfList = new LinkedList[m];
for (int i = 0; i < m; i++) {
arrayOfList[i] = new LinkedList<>();
}
}
这是我的搜索方法:
public int search(String word) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < arrayOfList[i].size(); j++) {
if (arrayOfList[i].get(j).equals(word)) {
return i;
}
}
}
return -1;
}
这就是我的 LinkedLists 的样子:
Example output: arrayOfList[0] = [house,car,tree.....]
arrayOfList[1] = [computer,book,pen....]
......
until arrayOfList[1000] = [...]
我的搜索方法应该找到我的单词的索引。示例:搜索(“计算机”)= 1;搜索(“房子”)= 0
解决方案
啊,经典!
众所周知,LinkedList 不适合随机访问,即 list.get(j) 方法。它在遍历列表方面要好得多,因此它可以从每个项目跳转到下一个项目。
你可以使用 list.iterator(),但是 foreach 循环做同样的事情:
public int search(String word) {
for (int i = 0; i < m; i++) {
for (String listValue: arrayOfList[i]) {
if (listValue.equals(word)) {
return i;
}
}
}
return -1;
}
推荐阅读
- aws-lambda - SAM 可以创建 s3 存储桶来存储 lambda 函数代码吗?
- dspace - DSpace 5.1 Solr 项目总数不同步
- php - 使用 Laravel 在 Azure 中来自单个请求的多个重复 HTTP 请求/查询
- r - Purtest Object - 如何将输出保存为 tex 文件?
- ios - 为什么有些库需要嵌入而有些则不需要?
- python - Pandas 通过跨多个列的单个条件过滤数据帧
- python - ValueError:将新列分配给pandas DataFrame时无法从重复轴重新索引
- image - React-Native ImageEditor.cropImage 不显示图片
- coldfusion - 在 Coldfusion 中为 Google 服务帐户创建 JWT
- javascript - Bootstrap 下拉菜单按钮未与 Leaflet 地图一起显示