В моем текущем проекте я должен хранить счетчик количества вставок в TreeMap<String, TreeSet<Song>>
.Проект состоит в том, чтобы запустить поиск отдельных слов в строке, в данном случае текст песни.У меня есть три теста, чтобы определить ход вставки карты, и мой алгоритм работает:
- тест, если слово содержит более одного символа и не является общим словом
- , если карта ужесодержит слово в качестве ключа, проверка, если установлено, уже содержит песню
- , если истина, счетчик вставки приращения
- , если карта не содержит слова в качестве ключа
- создать новый узел, добавить песню для установки
- счетчик приращений
Я объявляю счетчик как private double insertions;
как переменную класса.
Инициализируетсяв конструкторе:
public SearchByLyricsWords(SongCollection sc) {
this.songs= sc.getAllSongs();
buildSongMap();
insertions=0;
totalReferences=0;
averageReferences=0;
}
Метод buildMap:
for (String word:currentLyrics) {
if (word.length()>1 && !commonWords.contains(word)) {
if (lyricWords.containsKey(word)) {
if (!lyricWords.get(word).contains(song))
insertions++; //this is a non-duplicate song in the set
lyricWords.get(word).add(song);
} else {
TreeSet<Song> songSet= new TreeSet<Song>();
songSet.add(song);
lyricWords.put(word, songSet);
keyWords.add(word);
insertions++;
}
//System.out.println(word+" added");
}
} //end loop through string
Почему переменная класса, измененная в методе, не дает правильное значение в другом методе?