Quelle infrastructure de données utiliseriez-vous à la place de X pour avoir des fusions, des tris et des ajouts efficaces comme décrit ci-dessous?Pour avoir un entier pointant vers 3 listes ordonnées en Java
# 1 Solution possible: un HashMap à X -datastructure
Avoir un HashMap pointant de fileID
une certaine structure de données reliant word
, wordCount
et wordID
peut être une bonne solution. Cependant, je n'ai pas trouvé un moyen de l'implémenter. Je ne suis pas autorisé à utiliser PostgreSQL ou un outil similaire pour garder mes données neutralisées. Je ne suis pas autorisé à utiliser PostgreSQL ou tout autre outil similaire pour garder mes données neutralisées. Je veux avoir des fusions, des tris et des ajouts efficaces selon fileID
, wordID
ou wordCount
pour le type ci-dessous.
J'ai le type Words
qui a le champ fileID
qui pointe vers une liste de mots et des éléments d'information relatifs:
Le type
class Words
===================================
fileID: int
[list of words] : ArrayList
[list of wordCounts] : ArrayList
[list of wordIDs] : ArrayList
Exemple de les données en
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
Exemple de fusion nécessaire
fileID wordID fileID wordID
1 2
1 3 wordID=2
2 2 ========> 1 2
2 3 2 2
Je ne vois pas l'utilisation des réglages des opérations telles que intersections ici parce que l'ordre est nécessaire.
Avoir trois HashMaps fait le tri difficile:
word
-wordID
dans une donnéefileID
wordID
-fileID
wordID
-wordCount
dans une donnéefileID
Cela semble être une excellente réponse.Cependant, je dois d'abord faire quelques expériences pour les fusions, ajouts et autres pour vérifier que c'est efficace. –
Oui, le même mot doit toujours avoir le même motID. Il ne peut pas avoir d'ID différent. –