diff options
| author | pants <niklasjo2004@gmail.com> | 2026-09-21 14:16:34 -0700 |
|---|---|---|
| committer | pants <niklasjo2004@gmail.com> | 2026-09-21 14:16:34 -0700 |
| commit | 81ba9eb66f8284d8760012973f84cdbe617ceb94 (patch) | |
| tree | 466432644e9e3fd66ee183ec53a1f10abb1b7faa /debugging/InvertedIndex.java | |
Diffstat (limited to 'debugging/InvertedIndex.java')
| -rw-r--r-- | debugging/InvertedIndex.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/debugging/InvertedIndex.java b/debugging/InvertedIndex.java new file mode 100644 index 0000000..65284f7 --- /dev/null +++ b/debugging/InvertedIndex.java @@ -0,0 +1,52 @@ +import java.util.*; + +public class InvertedIndex { + public static void main(String[] args) { + List<String> docs = new ArrayList<>(); + docs.add("Raiders of the Lost Ark"); + docs.add("The Temple of Doom"); + docs.add("The Last Crusade"); + + Map<String, Set<String>> result = createIndex(docs); + System.out.println(docs); + System.out.println(); + System.out.println(result); + } + + // TODO: Write and document your createIndex method here + + public static Map<String, Set<String>> createIndex(List<String> docs) { + Map<String, Set<String>> index = new TreeMap<>(); + Set<String> uniqueWords = getUniqueWords(docs); + + for (String uniqueWord : uniqueWords) { + index.put(uniqueWord.toLowerCase(), new HashSet<String>()); + } + + for (String word : index.keySet()) { + for (int i = 0; i < docs.size(); i++) { + Scanner wordScanner = new Scanner(docs.get(i)); + while (wordScanner.hasNext()) { + if (wordScanner.next().equalsIgnoreCase(word)) { + index.get(word).add(docs.get(i)); + } + } + } + } + return index; + } + + public static Set<String> getUniqueWords(List<String> docs) { + Set<String> uniqueWords = new HashSet<>(); + for (String title : docs) { + Scanner titleScanner = new Scanner(title); + while (titleScanner.hasNext()) { + uniqueWords.add(titleScanner.next()); + } + titleScanner.close(); + } + return uniqueWords; + } + + +} |
