This repository has been archived on 2026-03-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
CSE-123/debugging/InvertedIndex.java
2026-03-18 00:39:35 -07:00

53 lines
1.6 KiB
Java

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;
}
}