Как вызвать сравнение с объектами в классе - PullRequest
0 голосов
/ 25 сентября 2018

Я пишу класс, который читает тексты википедии и сравнивает, как часто разные символы встречаются в файле .txt.

Для этого я создал пару частных экземпляров

public class Frequencies {

private double[] characterInstance = new double[26];
private String input;
private String name;
private double numberOfCharacters;

public Frequencies(String string)
    {
        name = string;
    }

Кроме того, я написал метод, который подсчитывает символы в файле .txt и помещает их в массив characterInstance, а также метод, который вычисляет частоту путем деления этого элемента characterInstance на общее количество символов.

Мой вопрос Теперь я хотел бы написать метод

    public double sameOrNot(Frequencies different)
    {

    }

, который возвращает абсолютную разницу между частотами символов обоих объектов моего класса Frequencies.То есть, если я инициализирую

Frequencies type1 = new Frequencies("type1") //And I give type1 some text to analyze
Frequencies type2 = new Frequencies("type2") //Also I give this some text to analyze
double result = type1.sameOrNot(type2) 

Как я могу написать метод sameOrNot таким образом, чтобы он понимал, что нужно сравнивать новый объект type2 со старым объектом type1?

1 Ответ

0 голосов
/ 25 сентября 2018

Попробуйте это (я не пробовал, поэтому я не знаю, работает ли он; я даже не пытался его скомпилировать).

public double sameOrNot(Frequencies other)
{
  // Initialize result
  double result = 0.0;

  // Loop over all characters
  int    counter;
  double this_freq;
  double other_freq;
  for (counter = 0; counter < characterInstance.length; counter++)
  {
    // Determine frequency of this character in both collections
    this_freq = this.characterInstance[counter] / this.numberOfCharacters;
    other_freq = other.characterInstance[counter] / other.numberOfCharacters;

    // Adjust final result
    result += Math.abs(this_freq - other_freq);

  } // for all characters

  // Done
  return (result);

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