Есть заданный входной файл для моей домашней работы. И я создал файл запроса, который включает некоторые слова во входном файле. Я хочу обработать те, которые распространены. Я также написал разные слова в своем запросе, который не включен во входной файл.
package hw5;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("input"));
BufferedReader q = new BufferedReader(new FileReader("query"));
BST<String, Integer> st = new BST<String, Integer>();
BST<String, Integer> stq = new BST<String, Integer>();
RedBlack<String, Integer> rb = new RedBlack<String, Integer>();
SeparateChainingHashST<String, Integer> hash = new SeparateChainingHashST<String, Integer>();
String line = null;
String lineq = null;
while ((line = br.readLine()) != null) {
while ((lineq = q.readLine()) != null) {
// System.out.println(line);
long start1, start2, start3;
long time, time2, time3;
start1 = System.nanoTime();
/*
* for (int i = 0;i<lineq.length(); i++) {
* if(stq.get(lineq).equals(st.get(line))) {
*/
Integer val = 1;
st.put(line, val);
stq.put(lineq, val);
// if(stq.get(lineq).equals(st.get(line))) {
System.out.println(stq.get(line));
// }
// }
time = (System.nanoTime() - start1)/1000; // divided by
1000 because 1 nanosecond is 0.001 microsecond
// System.out.println("elapsed time " + time);
start2 = System.nanoTime();
rb.put(line, null);
System.out.println(rb.get(line));
time2 = (System.nanoTime() - start2)/1000;
//System.out.println("elapsed time " + time2);
start3 = System.nanoTime();
hash.put(line, val);
System.out.println(hash.get(line));
time3 = (System.nanoTime() - start3)/1000;
System.out.println("Query "+lineq+" "+" in "+time+" microseconds in BST, "+time2+" microseconds in Red-Black and " + time3+" microseconds in Hash Table.");
System.out.println();
/*Query soprano not found in 30 microseconds in BST, 12 microseconds
in Red-Black and 2 microseconds in Hash Table*/
}
}
}
}
Я ожидал, что, например, слово сопрано отсутствует в запросе, поэтому код будет напечатан не найден. И, например, слово «солнце», включенное в запрос, найденные отпечатки и время (которое я исправил).