如果我有一个Map
用Java 实现接口的对象,并希望迭代其中包含的每一对,那么通过地图的最有效方法是什么?
元素的排序是否取决于我对界面的具体映射实现?
我正在使用字符串的TreeMap TreeMap<String, String>
,并使用它来实现单词的Dictionay.
然后我有一个文件集合,并希望在字典定义的向量空间(单词空格)中创建每个文件的表示.
每个文件都应该有一个向量来表示它,具有以下属性:
所以我的想法是使用a Vector<Boolean>
来实现这些向量.(这种表示集合中文档的方式称为布尔模型 - http://www.site.uottawa.ca/~diana/csi4107/L3.pdf)
我在创建这个向量的过程中遇到的问题是我需要一种方法来查找字典中单词的位置,如下所示:
String key;
int i = get_position_of_key_in_Treemap(key); <--- purely invented method...
Run Code Online (Sandbox Code Playgroud)
1)我可以在TreeMap上使用这样的方法吗?如果没有,你能不能提供一些代码来帮助我自己实现它?
2)TreeMap上是否有一个迭代器(它按字母顺序排列),我可以获得它的位置?
3)最终我应该使用另一个类来实现字典?(如果你认为使用TreeMaps我不能做我需要的)如果是的话,哪个?
提前致谢.
增加部分:
由dasblinkenlight提出的解决方案看起来很好,但是存在复杂性问题(由于将密钥复制到数组中而与字典的维度呈线性关系),并且不能接受为每个文件执行此操作的想法.
对我的问题还有其他想法吗?
如果.NET有一个SortedDictionary对象......请问Java中的这个是什么?我还需要能够Enumeration
在Java代码中检索(元素)..因此我可以迭代所有键.
我在想它是一个TreeMap?但是,我不认为有Enumeration
这样的暴露?
有任何想法吗?
java ×3
dictionary ×2
.net ×1
collections ×1
enumeration ×1
iteration ×1
iterator ×1
sortedmap ×1
treemap ×1