Java 制作词典的正确方法

Java 制作词典的正确方法,java,dictionary,map,Java,Dictionary,Map,我需要为我的java程序制作一本字典(英译英)。我只想找到一个单词和词义的数据库,然后对每个单词进行搜索查询以获取其词义。我搜索了StackoverFlow,看到了关于如何制作词典的相同问题。 每个人都建议使用Map类。例如: 这是正确的方法吗 是的,映射适合于字典实现。从Map的JavaDoc: 将键映射到值的对象。地图不能包含重复的内容 钥匙;每个键最多可以映射到一个值 这个接口取代了Dictionary类,后者是一个 完全抽象的类而不是接口 一本词典只要能将单词映射到定义,就可以包含将单词

我需要为我的java程序制作一本字典(英译英)。我只想找到一个单词和词义的数据库,然后对每个单词进行搜索查询以获取其词义。我搜索了
StackoverFlow
,看到了关于如何制作词典的相同问题。 每个人都建议使用
Map
类。例如:
这是正确的方法吗

是的,映射适合于字典实现。从
Map
的JavaDoc:

将键映射到值的对象。地图不能包含重复的内容 钥匙;每个键最多可以映射到一个值

这个接口取代了Dictionary类,后者是一个 完全抽象的类而不是接口


一本词典只要能将单词映射到定义,就可以包含将单词映射到单词的功能

因此,使用地图最有意义,特别是您可以使用

public class Key  
{  
     private String keyName;
     ...
}  
您的
值必须是一组键:

Map<Key,Set<Key>> dictionary = ...;  
Set<Key> catKeys = new HashSet<Key>();  
catKeys.add('kitty');  
catKeys.add('kitten');  //technically true just a small one  
dictionary.put(new Key('Cat'), catKeys);
Map字典=。。。;
Set catKeys=new HashSet();
添加('kitty');
添加('kitten')//技术上是正确的只是一个小问题
dictionary.put(新键('Cat'),猫键);

嵌入式数据库也没有那么难。尝试几个例子,使用不同的操作策略。数据库可以保持持久性。JavaDerby数据库就在那里,但H2SQL和其他一些可能更值钱


与地图相比,你需要更多的管道,但如果你深入研究这个问题,你还可以进行查询,比如同义词查询。

是的。在java中,最接近字典的是映射接口及其子类。看看HashMap是什么让你觉得这次你会得到不同的答案?@assylias我的想法是什么?@RNJ我不明白怎么做,你的意思是我必须制作一个大的HashMap,并给出每个单词及其含义?如果你想要一个单词和含义的数据库,因此,搜索谷歌并不是一个可以找到这些信息的地方。你可能最终会找到一个能满足你需要的Web服务。通过地图,你可以实现你的字典,但是单词和意思对你来说并不容易获得!你的意思是我必须给地图上所有的单词和它们的意思?是的,或者从数据库中检索数据并加载到地图上。为什么?那又怎么样?!当我可以在数据库上运行查询并检索所需数据并直接向用户显示时,我为什么要在中间使用地图?
Map
是RAM中的一个对象,因此访问和操作它要比访问和操作数据库快得多。当
Map
可能工作时,这似乎过于复杂了,否?@assylias使用
String
api是Java开发中最大的陷阱之一。约书亚·布洛赫(Joshua Bloch)的这篇演讲就是一个很好的例子:它可能是——但用字符串来表示一个单词或句子听起来并不像是一种不恰当的用法。。。由于您当前的键实现只是一个字符串,我看不出有任何理由不直接使用字符串…@assylas我正在传递一个键对象,它恰好是由一个字符串组成的。我可以在那里有17个函数,但在这个例子中它是不必要的