2016-06-12 47 views
0

我正在寫一個JAVA程序來搜索Excel文件中的字符串並提取包含此特定字符串的行。我發現所有相關的方法都是逐個查看所有行,並使用.contain()方法來判斷此行是否包含字符串。但問題是:如何快速搜索Excel文件中的字符串

a。有大量的字符串匹配。

b。 Excel文件非常大。

所以我很好奇,是否有快速搜索Excel文件中的字符串而無需迭代每一行?非常感謝!

+0

在VBA,一會讀取整個範圍到一個數組(單步,速度非常快),然後通過數組迭代,可能使用'For Each ...'和'Instr'來查找字符串的存在。也可以使用'Range.Find'方法,但對於非常大的文件可能會變慢。有什麼相當於你可以在JAVA中使用? –

+0

@RonRosenfeld謝謝,但我還沒有找到...... – beepretty

回答

0

搜索算法通常在未預排序的列表上具有O(n)的性能。如果沒有關於您正在搜索的Excel文件的信息,則沒有比O(n)更好的最壞情況性能的算法。

所以,這意味着,無論如何,遍歷每一行,直到找到被禁用的行是必要的。如果你想提高性能,你可以嘗試使用並行,例如的MapReducehttps://en.wikipedia.org/wiki/MapReduce

相關問題