我正在开发一个小项目,一个 Web 应用程序,我在其中根据用户文本输入对数据进行一些分析。
为此,我需要使用一个地图,其中包含该单词的单词和相应的分数。
这是我尝试过的:
public class EnDict {
private static Map<String, Integer> map = new HashMap<String, Integer>() {
{
put("abandon", -2);
put("ability", 2);
put("abuse", -3);
//and so on, thousands of pairs
}
}
}
它有效,但这样我需要在我的类中硬编码键/值对。所以,如果我想添加更多对,我必须编写代码,而不是仅仅添加对做一个文本文件。好像不太好
所以我想从文本文件中获取这对。此外,我需要在应用程序启动时创建此 Map,因此当任何用户发出请求时,该 Map 已经加载,并且可供分析逻辑使用。我的意思是,Map 必须在第一个请求发生之前在内存中,并且在那之后最后在内存中,以便在后续请求中使用。并且它需要在我的应用程序的任何地方都可见(也许这部分不是很清楚,但我不知道如何更好地解释它)。
我已经尝试了一些研究,但没有找到自应用程序启动以来将 Map 保存在内存中的特定部分的答案。它类似于类中的 ASP.NETApplication_Start
方法Global
。
我对编程非常陌生,特别是对 Java 来说,所以也许我完全被误导了如何是完成这项任务的最佳方式。如果是这样的话,一些小费将不胜感激。
我正在使用 Servlet、JSP 和 Tomcat。
编辑:实际上,它不会只有一张地图。会有几个 Map,这些 Map 可以有一些相同的键。