您将在X的位置使用哪种数据结构进行有效的合并,排序和添加,如下所述?
将HashMap从fileID
指向链接word
,wordCount
和wordID
的某个数据结构可能是一个很好的解决方案。但是,我还没有找到实现它的方法。
我不允许使用Postgres或任何类似的工具来保持我的数据被中和。
我希望根据fileID
,wordID
或wordCount
对下面的类型进行有效的合并,排序和添加。
我的类型为Words
,其字段fileID
指向单词列表和相关信息:
类型
class Words
===================================
fileID: int
[list of words] : ArrayList
[list of wordCounts] : ArrayList
[list of wordIDs] : ArrayList
中的数据示例
fileID word wordCount wordID
instance1 of words
1 He 123 1111
1 llo 321 2
instance2 of words
2 Van 213 666
2 cou 777 932
需要合并的示例
fileID wordID fileID wordID
1 2
1 3 wordID=2
2 2 ========> 1 2
2 3 2 2
我在这里看不到intersections等集合操作的使用情况,因为需要订购。
大约有三个HashMaps使排序变得困难:
word
wordID
到fileID
wordID
到fileID
wordID
wordCount
到fileID
醇>
答案 0 :(得分:3)
为什么不使用类将单词,单词计数和单词ID存储在一起?然后,您需要为每个fileID提供一个列表。这将使IMO至少简化操作。
class Word {
private String text;
private long count;
private long id;
// getters, setters
}
class Words {
private int fileID;
private List<Word> words;
// getters, setters
}
这将是骨架,它已经自动解析了您的映射3.然后您可以将所需的其他映射添加到Words
和/或Word
。
我不明白你的描述,同一个词是否总是有相同的wordID,或者它在不同的文件中是否有不同的ID;没有这个,我无法继续推进设计理念。但我希望到目前为止这可以帮助你克服僵局: - )