Код с сокращениями, тут суть)
public class Main {
public static void main(String[] args) throws FileNotFoundException, SQLException {
Map<Integer, String> mapTrackFile = new HashMap<Integer, String>();
while (sc.hasNextLine()){
next = sc.nextLine();
if(next.contains(ABBREVIATYRA)){
mapTrackFile = Main.recordDataTrackOrMap(sc, next);
} else if(next.contains(STARTS_OF_FRAGMENT)){
db.processString (koltrack, mapTrackFile, mapBD, count, sc);
}
}
static Map recordDataTrackOrMap(Scanner sc, String next) {
Map<Integer, String> mapTrackFile = new HashMap<Integer, String>();
//тут нахождение нужных параметров
mapTrackFile.put(number, abbreviatura.trim());
return mapTrackFile;
}
MapTrack берётся из файла, у меня получается так, что записывается только последняя пара ключ - значение, ключи у всех разные 100%, то есть перезаписи не происходит, Что я не так понимаю? Подскажите пожалуйста
Так Вы же в методе recordDataTrackOrMap каждый раз возвращаете новую карту для ключ/значение и присваиваете ее в методе main.
Варианта решения 2:
1. Сделать
Map<Integer, String> mapTrackFile
из метода main полем класса и убрать
Map<Integer, String> mapTrackFile = new HashMap<Integer, String>();
из recordDataTrackOrMap
2. Передавать mapTrackFile из метода main как параметр в метод recordDataTrackOrMap, но опять же
Map<Integer, String> mapTrackFile = new HashMap<Integer, String>();
убрать из метода recordDataTrackOrMap
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости