Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.04.2022
Сообщений: 4
1

Напечатать данные хэш-таблицы, которая находится внутри другой хэш-таблицы

01.04.2022, 13:58. Показов 815. Ответов 5

Author24 — интернет-сервис помощи студентам
Есть конструктор хэш-таблицы внутри которой конструктор хэш-таблицы.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class StepTracker {
    HashMap<Integer, MonthData> monthToData = new HashMap<>();
    public StepTracker() {
        for (int i = 0; i < 12; i++) {
            monthToData.put(i, new MonthData());
        }
    }
    static class MonthData {
        HashMap<Integer, Integer> dataToSteps = new HashMap<>();
        public MonthData() {
            for (int i = 0; i < 30; i++) {
                dataToSteps.put(i, 0);
            }
        }
    }}
Я пытаюсь получить с помощью команды System.out.println("Данные: " + monthToData.get(1)); данные из хэш-таблицы dataToSteps. Но на выходе получаю примерно следующее содержание: "Данные: StepTracker$MonthData@7823a2f9". Не могу понять как написать конструктор верно, чтобы значения выдавались корректно.

И можно ли сформулировать команду так, чтобы печаталось не всё содержимое таблицы dataToSteps, а только одно конкретное значение по конкретному ключу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2022, 13:58
Ответы с готовыми решениями:

Построение хэш-таблицы по методу цепочек с использованием хэш-функции, возращающий код первой буквы идентификатора
Здравствуйте. Помогите с задачей. Таблица строиться по методу цепочек с использованием...

Хэш-таблицы
Создать структуру данных для хэш-таблицы и определить для неё следующие операции: • Вставка...

Хэш-таблицы
Могут ли в таблице ключей(исходной) быть одинаковые элементы? Имеет ли значение отсортирована...

Хэш-таблицы
Добрый вечер! Задание такое: Способ вычисления адреса по ключу - расщепление ключа 2 Метод...

ХЭШ ТАБЛИЦЫ НА С++
всем привет, кто-нить знает что-нибудь по вот такой задаче (цитирую условие): &quot;Реализовать и...

5
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
01.04.2022, 14:54 2
прочитай про метод toString
Цитата Сообщение от TB1x Посмотреть сообщение
И можно ли сформулировать команду так
sout(map.get(key))
0
0 / 0 / 0
Регистрация: 01.04.2022
Сообщений: 4
01.04.2022, 15:11  [ТС] 3
Цитата Сообщение от xoraxax Посмотреть сообщение
sout(map.get(key))
Если я воспользуюсь этим методом для хэш-таблицы monthToData, то я получу значение хэш-таблицы MonthData по ключу, который укажу в методе. Мне же необходимо, теоретически, указать ключ для хэш-таблицы monthToData и указать ключ для хэш-таблицы dataToSteps, чтобы получить одно определённое значение из хэш-таблицы dataToSteps
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
01.04.2022, 15:43 4
Ну значит надо ещё один раз get сделать, очевидно же
0
0 / 0 / 0
Регистрация: 01.04.2022
Сообщений: 4
01.04.2022, 21:49  [ТС] 5
Цитата Сообщение от xoraxax Посмотреть сообщение
Ну значит надо ещё один раз get сделать, очевидно же
Цитата Сообщение от TB1x Посмотреть сообщение
Я пытаюсь получить с помощью команды System.out.println("Данные: " + monthToData.get(1)); данные из хэш-таблицы dataToSteps. Но на выходе получаю примерно следующее содержание: "Данные: StepTracker$MonthData@7823a2f9"
При попытке прописать такой же sout с методом map.get(key) для dataToSteps опять же получаю нечто подобное: @7823a2f9.
На другом форуме подсказали, что нужно переопределить метод toString для класса MonthData, но java не позволяет это сделать. Строку return dataToSteps; подчёркивает красным.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class StepTracker {
    HashMap<Integer, MonthData> monthToData = new HashMap<>();
    public StepTracker() {
        for (int i = 0; i < 12; i++) {
            monthToData.put(i, new MonthData());
        }
    }
    static class MonthData {
        HashMap<Integer, Integer> dataToSteps = new HashMap<>();
        public MonthData() {
            for (int i = 0; i < 30; i++) {
                dataToSteps.put(i, 0);
            }
        }
        @Override
        public String toString() {
            return dataToSteps;
        }
    }
}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
02.04.2022, 00:59 6
Цитата Сообщение от TB1x Посмотреть сообщение
На другом форуме подсказали, что нужно переопределить метод toString
Цитата Сообщение от xoraxax Посмотреть сообщение
прочитай про метод toString
ты внимательнее читай, что тебе пишут
Цитата Сообщение от TB1x Посмотреть сообщение
Строку return dataToSteps; подчёркивает красным.
наврено потому, что dataToSTeps - это не String? Если мышкой на крсаное наведешь, иде об этом говорит, кстати
0
02.04.2022, 00:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2022, 00:59
Помогаю со студенческими работами здесь

ХЭШ таблицы на С++
Всем привет, кто-нить знает что-нибудь по вот такой задаче (цитирую условие): &quot;Реализовать и...

Хэш-таблицы
Добавить функцию Scan просмотра таблицы (в случае цепочек –элементы списка выводить на одной...

Хэш-таблицы
Не могу понять как реализовать эту задачу, подтолкните хотя бы на мысль. Условие: Реализовать...

Хэш таблицы
помогите нинак не могу написать програму - Дано натуральное число n, действительные числа х1, ...,...

Реализация Хэш-Таблицы
Всем привет, преподаватель задал реализовать Хэш-Таблицу, функции все он дал, мне нужно было их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru