summaryrefslogtreecommitdiff
path: root/debugging/InvertedIndex.java
diff options
context:
space:
mode:
Diffstat (limited to 'debugging/InvertedIndex.java')
-rw-r--r--debugging/InvertedIndex.java52
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;
+ }
+
+
+}