обработка слов, общих для данного входного файла и моего файла запросов - PullRequest
0 голосов
/ 26 мая 2019

Есть заданный входной файл для моей домашней работы. И я создал файл запроса, который включает некоторые слова во входном файле. Я хочу обработать те, которые распространены. Я также написал разные слова в своем запросе, который не включен во входной файл.

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*/

      }
    }
  }
}

Я ожидал, что, например, слово сопрано отсутствует в запросе, поэтому код будет напечатан не найден. И, например, слово «солнце», включенное в запрос, найденные отпечатки и время (которое я исправил).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...