【发布时间】:2011-09-19 10:12:13
【问题描述】:
我有一个简单的应用程序,它从大文本文件中读取小字符串中的数据并将它们保存到数据库中。要实际保存每个这样的字符串,应用程序会调用以下方法数次(可能是数千次,甚至更多次):
setValue(String value)
{
if (!ignore(value))
{
// Save the value in the database
}
}
目前,我通过连续比较一组字符串来实现ignore()方法,例如
public boolean ignore(String value)
{
if (value.equalsIgnoreCase("Value 1") || (value.equalsIgnoreCase("Value 2"))
{
return true;
}
return false;
}
但是,因为我需要检查许多这样的“可忽略”值,这些值将在代码的另一部分中定义,所以我需要使用数据结构进行此检查,而不是多个连续的 if 语句。
那么,我的问题是,从 标准 Java 到实现这一点的最快数据结构是什么?哈希表?一套?还有什么?
初始化时间不是问题,因为它会静态发生,每次应用程序调用一次。
编辑:到目前为止建议的解决方案(包括 HashSet)似乎比仅使用带有所有被忽略单词的 String[] 并仅针对每个单词运行“equalsIgnoreCase”要慢。
【问题讨论】:
标签: java string data-structures comparison