Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2022, 16:16   #1
Дмитрий Мишалов
Новичок
Джуниор
 
Регистрация: 16.11.2022
Сообщений: 1
По умолчанию Работа с HashMap (Java)

Здравствуйте! Вопрос по созданию и работе HashMap.

В HashMap должен быть ключ - номер месяца (i),
а в ArrayList я планировал добавить все данные из месячного отчета, но не получается. Не понимаю как создать таблицу, чтобы она правильно работала и как обращаться к элементам из этой таблицы.

Я создаю объект через конструктор и как мне обращаться к нему с учетом того, что это HashMap.

Месячные отчеты типированные и представляют собой файл с данными. Отчет включает в себя:
item_name,is_expense,quantity,sum_o f_one
Заточка коньков,TRUE,50,200
Разморозка ледопарка,TRUE,1,20000
Организация специального концерта,TRUE,1,60000
Продажа билетов,FALSE,2500,300
Продажа кофе,FALSE,1200,150
Билеты на специальный концерт,FALSE,300,5000
в дальнейшем нужно будет считать самый дорогойто товар и выводить название этого товара и прочие манипуляции с данными.

Тестовый вывод выводит аброкадабру.
AlvTTvVdztM.jpg


Код:
public class MonthlyReport {
     HashMap<Integer, ArrayList<OneMonth» monthTears = new HashMap<>();

     void readFileContentsOrNull(String year) throws FileNotFoundException {

            for (Integer i = 1; i < 4; i++) {

                  String path = "./resources/m." + year + "0" + i + ".csv";
                  File file = new File(path);
                  Scanner scanner = new Scanner(file);
                  ArrayList <OneMonth> asd = new ArrayList<>();
                  scanner.nextLine();
                  while (scanner.hasNextLine()) {
                         String line = scanner.nextLine();
                         String[] lineContents = line.split(",");
                         Integer amount = Integer.valueOf(lineContents[2]);
                         Boolean type = Boolean.valueOf(lineContents[1]);
                         Double price = Double.valueOf(lineContents[3]);
                         String product = String.valueOf(lineContents[0]);
                         OneMonth asdz = new OneMonth(product, type, amount, price);

                         // открываем список классов
                             asd.add(asdz); // добавляем (пока не знаю как)


                         // System.out.println(asdz + " xnj nj");
                         monthTears.put(i,asd);
}
Дмитрий Мишалов вне форума Ответить с цитированием
Старый 17.11.2022, 02:05   #2
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Дмитрий Мишалов Посмотреть сообщение
Код:
                         monthTears.put(i,asd);
Этот код, добавление в hash-таблицу, надо делать не в цикле while (который по всем строкам файла), а в цикле for (который по i = 1, 2, 3).
Цитата:
Сообщение от Дмитрий Мишалов Посмотреть сообщение
Тестовый вывод выводит аброкадабру.
Это может быть проблема с кодировками (UTF-8, code page 1251). Попробуйте для начала, чтобы в файле был только английский текст.
Пётр Седов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HashMap Alexmur07 Общие вопросы по Java, Java SE, Kotlin 21 21.06.2018 11:13
Достать значения JSON из HashMap yura91 Java Мобильная разработка (Android) 2 09.07.2016 19:25
Java и HashMap OlgaLenc Помощь студентам 0 10.12.2014 13:44
Работа с HashMap<> (java) 803 Помощь студентам 0 23.12.2013 19:29
Hashmap Артем533 Общие вопросы по Java, Java SE, Kotlin 2 25.11.2012 00:17