我有一个非常大的字符串列表...(ArraList myList),我想非常快地从这个列表中删除重复的项目...我将项目复制到一个HashMap中,这是我找到的最好的算法,但它还不够快……我发现了一些东西,比如用原生语言编写代码,并在android应用程序中实现它,我们可以用原生语言从列表中删除重复的代码吗?有没有用汇编语言编写的函数可以比java更快地做到这一点?
如果没有,有没有比java更快的函数来比较两个字符串呢?
发布于 2014-01-29 14:42:05
发布于 2014-01-29 14:28:12
有没有用汇编语言编写的函数可以比java更快地做到这一点?
这样的函数已经存在了吗?我不知道。我不知道如果真是这样的话怎么找得到。
你能写一个这样的函数吗?也许..。理论上是这样。
但问题是,你需要成为一名真正优秀的汇编程序员(对所涉及的算法有很好的理解)才能做到这一点。更重要的是,不能保证现有的Java实现(当使用好的JIT编译器编译时)不会很快。
我之所以在这里感到悲观,是因为在HLL (如Java)中实现高效的哈希表对大多数人来说已经够难的了。在汇编语言中实现同样的思考将会困难几个数量级。(这是修辞。你不能真的像那样量化难度...)
如果没有,有没有比java更快的函数来比较两个字符串呢?
我看不出这会有多大帮助。如果您正确地使用了HashSet
,那么字符串比较应该不会成为您的问题的性能瓶颈。即使你的重复率很高,也不会。
发布于 2014-01-29 14:46:32
你在哪里获取和存储你的字符串列表?使用SQLite或者像CQEngine这样的东西来存储和管理数据会不会更好?
https://stackoverflow.com/questions/21432733
复制相似问题