- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个有序列表(字典 - 100K 个单词)和许多要经常在此列表上搜索的单词。所以性能是个问题。我知道 HashSet.contains(theWord) 或 Collections.binarySearch(sortedList, theWord) 非常快。但我实际上并不是在寻找整个词。
我想要的是假设搜索“se”并获取所有以“se”开头的单词。那么在 Java 或任何库中是否有现成的解决方案?
一个更好的例子:在一个排序列表上,一个快速解决以下操作的方法
List.subList(String beginIndex, String endIndex)//返回区间
myWordList.subList(“ab”, “bc”);
注意:这是一个非常相似的问题,但接受的答案并不令人满意。 Overriding HashSet's Contains Method
最佳答案
您在这里寻找的是一种通常称为“trie”的数据结构:
http://en.wikipedia.org/wiki/Trie
它将字符串存储在由前缀索引的树中,其中树的第一层包含字符串的第一个字符,第二层包含第二个字符,等等。结果是它允许您提取非常大的子集极快地按前缀设置字符串。
关于java - 像 startsWith() 不是 equals() 这样的快速字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354882/
我使用的是 Java 版本 1.8.0_31。 我正在尝试使用 FileVisitor 接口(interface)递归访问目录树。该程序应打印 C:/books 中文件名以“Ver”开头的所有文件的名
我有一个 Java 方法,它接受类型的参数 interface Function2 { TR apply(TP1 p1, TP2 p2) } 以及像这样的 Java 方法 boolean cont
我有一个给我带来麻烦的功能。下面的代码返回错误消息“无法读取未定义的属性‘值’”。该函数应该只搜索帐户列表中的值并返回以提交的字符串开头的值。在示例中,提交“000555”应返回 0。 var acc
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 4 年前。 Improve th
所以我有一个问题。今天我开始优化我的代码并达到了这一点,例如: return !this.message.startsWith("/"); 请遵循我从 here 获取优化技巧的地方。 (链接到规则)
我仍在使用 Java 开发一个项目,想问问是否有人可以帮助我? 我问我是否有可能用“startsWith”来检查一个包含多个字母的字符串? 喜欢: if (string Alpha.startsWi
类项目要求我们读取单个文本文件中包含的 10,514 首歌曲的标题、艺术家和歌词。该项目的当前部分让我们编写一个有序的展开链接列表并在标题字段上运行搜索。还编写了比较器来按标题对列表进行排序。我们必须
我加入了两个列表,一个包含总线路径,另一个包含作为总线子路径的磁盘路径。所以基本上我想加入 diskpath.startswith(buspath)。问题是 Join On 只允许在 equals 的
我有这个代码: for (var i = 0; i TypeError: r[e].startsWith is not a function > at js-cf2cc68….min.js.g
我正在阅读 Microsoft 的 Best Practices for Using Strings in the .NET Framework . 它给出了以下示例作为对 StringCompari
我正在寻找一个集合来存储键值对,其中值应该根据键 startswith 条件返回。 例如对于给定的集合:(a,123) (ab,234) (abcd,5434) 如果我执行 map.get(a) 它应
有没有办法检查一个字符串是否以不同的字母开头,而不是只检查一次。 下面是我当前的代码: myString.startsWith('M') || myString.startsWith('L
函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 1、函数说明 语法:string.startswith(str, beg=0,end=len(string))
在网站上没有找到这个,但我确实找到了 open bug on Github在撰写本文时,唯一的解决方案是使用 GatsbyImage。学习将 Gatsby 项目从 2 转换为 3 我已经安装了 gat
我是 PowerShell 的新手,如果字符串不是以特定字符开头,我正在尝试运行一些代码,但是我无法让它处理多个字符。 这是工作正常的代码。 if (-Not $recdata.StartsWith
我需要查看文本的第一行是否以 By 开头,如果是,则剪切整行并将其存储在变量中,并删除所有空白行,直到下一段开始。查找 By 的方法需要不区分大小写,并且前面也可能有一些空格。如果第一行不是以 By
当我像这样使用 odata 时:$filter=startswith(tolower(firstName),tolower('A'))它不起作用。 我想知道tolower和toupper是否可以和st
这个问题在这里已经有了答案: Conditional statement inside a match case (2 个答案) 关闭 4 个月前。 有没有办法像下面这样使用匹配大小写来选择字符串结
我有一个这样的查找: Lookup plsBase = (Lookup)(Query($@"Select ...").ToLookup(s => s.ip, o => o)); 当我通过按键访
当我像这样使用 odata 时:$filter=startswith(tolower(firstName),tolower('A'))它不起作用。 我想知道tolower和toupper是否可以和st
我是一名优秀的程序员,十分优秀!