English 中文(简体)
用于字符串平等检查的 java 性能查询
原标题:A query on java performance for string equality checking

我有一个非常庞大的字符串 URL模式,如 http://www.imdb.com,http://www.amazon.com ,...

我正在获取像这样的输入 URL :

http://www.imdb.com/title/tt1409024/

为了我的应用程序的目的,这个 URL 实际上是从“http://www.imdb.com” http://www.imdb.com http://www.imdb.com > 上“nofollow” 上建立的,所以这两个词的平等应该是 true

要执行此功能, 我可以从输入 URL 中提取基准 URL :

http://www.imdb.com/title/tt1409024/ => http://www.imdb.com

现在,我需要比较这个提取的 URL 和 URL 的总列表, 如果找到匹配的话, 我要将基准 URL 存储在数据库中。 因此, 实质上, 对于我输入的( 基准) URL s 中的每一个, 我寻找取出 URL 的总列表中的匹配点, 如果找到匹配点, 我会在数据库中存储输入( 基准) URL 。

为了执行平等/匹配逻辑,我有两个可能的解决办法。

  1. Put the master list of URL s in an array list, and use the array list contains method
  2. Put the master list in a database, and use query to check the the input url against it

有谁能告诉我,在业绩方面哪一个会更好?

最佳回答

您的建议都不合适。 对于一个矩阵列表, 您必须搜索“ 线性 < / em”, 搜索范围为列表的一半( 平均), 搜索您想要检查的每个 URL 。

对于数据库(大概在磁盘上? ) 来说,每个查询都可能需要花费昂贵的数据库查询。

1000 URL 模式并不多。 将列表保留在记忆中并使用适当的数据结构 - < a href="http://docs. oracle.com/javase/6/docs/ api/java/ util/ HashSet.html" rel = "nofollow" > HashSet 将做得很好 。

问题回答

如果您将网站的url放入"http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashSet.html" rel=“nofollow”>HashSet ,您将会得到与您的阵列列表解决方案相同的行为,但它会是一个固定的时间搜索,而不是列表长度上的变量。

数据库解决方案对于你的问题来说可能太费力了,因为间接费用将不仅仅是搜索效率收益。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签