init
This commit is contained in:
52
debugging/InvertedIndex.java
Normal file
52
debugging/InvertedIndex.java
Normal file
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user