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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2017, 15:56   #1
exercistxc
Новичок
Джуниор
 
Регистрация: 17.06.2017
Сообщений: 7
По умолчанию Не могу разобраться с кодом.

class Ideone
{
public static HashMap<String, Integer> createMap() {
HashMap <String, Integer> map = new HashMap <String, Integer> ();
map.put("a", 1);
map.put("b", 10);
map.put("c", 100);
map.put("d", 1000);
map.put("i", 10000);
map.put("f", 10000);
map.put("g", 10);
map.put("k", 10);
map.put("l", 10);
map.put("m", 100);

System.out.println(map.get(2));
return map;

}

public static void removeItemFromMap(HashMap<String, Integer> map) {


System.out.println(map.get(2));

}


public static void main(String[] args) {

}
}


Почему не выводится значение ни из первого ни из второго метода, через System.out.println?
Я так понимаю метод или методы надо прописать в main. Но что то не пойму, как сделать это.
exercistxc вне форума Ответить с цитированием
Старый 17.06.2017, 16:52   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Естественно, их надо прописывать в мейн. Вы их описали, но не сказали, что надо выполнять.
p51x на форуме Ответить с цитированием
Старый 19.06.2017, 13:09   #3
exercistxc
Новичок
Джуниор
 
Регистрация: 17.06.2017
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Естественно, их надо прописывать в мейн. Вы их описали, но не сказали, что надо выполнять.
Хорошо первый метод вызвать удалось строкой

Ideone.createMap();

Правда значение показывает null, почему?
А вот второй метод как ни писал не идет.

при вызове Ideone.removeItemFromMap(HashMap<St ring, Integer> map);

пишет Main.java:40: error: cannot find symbol
Ideone.removeItemFromMap(HashMap<St ring, Integer> map);
^
symbol: variable HashMap

Или так Ideone.removeItemFromMap();
Тогда Main.java:40: error: method removeItemFromMap in class Ideone cannot be applied to given types;
Ideone.removeItemFromMap();

Но ведь map уже создана в предыдущем методе. Почему второй метод не знает о ней? И как сделать что-бы знал.
exercistxc вне форума Ответить с цитированием
Старый 19.06.2017, 13:34   #4
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

static
{
createMap() ;
}
alexzk вне форума Ответить с цитированием
Старый 19.06.2017, 14:13   #5
exercistxc
Новичок
Джуниор
 
Регистрация: 17.06.2017
Сообщений: 7
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
static
{
createMap() ;
}
Не понял?
exercistxc вне форума Ответить с цитированием
Старый 19.06.2017, 14:16   #6
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от exercistxc Посмотреть сообщение
Не понял?
добавьте в класс, 1 к 1, это вызовет создание мапы при загрузке класса из файла в память.
У вас описано КАК создавать мапу, но не выдана команда ее создать. Вон я ее привел.

...ага, ну у меня не полное решение - команда на создание есть, но результат не запоминается нигде, так что оно сразу будет и удалено. Т.о. по прежнему будет ошибка. Предлагаю вам подумать.

Последний раз редактировалось alexzk; 19.06.2017 в 14:21.
alexzk вне форума Ответить с цитированием
Старый 19.06.2017, 14:22   #7
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Код:
public static void main(String[] args) {
  Map<String, Integer> m = createMap();
  removeItemFromMap(m);
}
вот так и запомним, и используем.
alexzk вне форума Ответить с цитированием
Старый 19.06.2017, 14:33   #8
exercistxc
Новичок
Джуниор
 
Регистрация: 17.06.2017
Сообщений: 7
По умолчанию

Что то совсем не то.

Что-бы было понятней.
Примерно так выглядит рабочий код

Код:
class Ideone
{

    public static HashMap<String, Integer> createMap() {
       HashMap <String, Integer> map = new HashMap <String, Integer> ();
       map.put("a", 1);
       map.put("b", 10);
       map.put("c", 100);
       map.put("d", 1000);
       map.put("i", 10000);
       map.put("f", 10000);
       map.put("g", 10);
       map.put("k", 10);
       map.put("l", 10);
       map.put("m", 100);
 
     
       return map;
 
    }
 
    public static void removeItemFromMap(HashMap<String, Integer> map) {

	
     map.entrySet().removeIf(pair -> pair.getValue() < 500);}
 
 
    public static void main(String[] args) {

 
    }
}
Те первый метод создает мап, второй убирает все значения из мап меньше 500.
Поскольку этот пример у меня не работал. Я и заинтересовался, как вывести то что у меня происходит после создания мапа. И как вывести то, что происходит после работы второго метода.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 19.06.2017 в 15:25.
exercistxc вне форума Ответить с цитированием
Старый 19.06.2017, 15:02   #9
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Ой не морочте голову он не работает, потому что map в обеих ф. - это ЛОКАЛЬНЫЕ переменные, не свзязанные м-у собой, сделайте их глобальными
Код:
class Ideone
{

public static HashMap<String, Integer> map;
static {
map = new HashMap <String, Integer> ();
map.put("a", 1);
map.put("b", 10);
map.put("c", 100);
map.put("d", 1000);
map.put("i", 10000);
map.put("f", 10000);
map.put("g", 10);
map.put("k", 10);
map.put("l", 10);
map.put("m", 100);
}

public static void removeItemFromMap() 
{

map.entrySet().removeIf(pair -> pair.getValue() < 500);}


public static void main(String[] args) {


}
}
alexzk вне форума Ответить с цитированием
Старый 19.06.2017, 15:56   #10
exercistxc
Новичок
Джуниор
 
Регистрация: 17.06.2017
Сообщений: 7
По умолчанию

Цитата:
Ой не морочте голову он не работает, потому что map в обеих ф. - это ЛОКАЛЬНЫЕ переменные, не свзязанные м-у собой, сделайте их глобальными
Я бы рад но таковы условия задачи:

Код:
public class Solution {
    public static HashMap<String, Integer> createMap() {
        //напишите тут ваш код
    }

    public static void removeItemFromMap(HashMap<String, Integer> map) {
        //напишите тут ваш код
    }

    public static void main(String[] args) {

    }
}
Код можно писать только там где стоит пояснение "напишите тут ваш код".
exercistxc вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться с кодом:( sad3333 Помощь студентам 0 17.05.2016 19:42
Не могу разобраться с Css кодом Yaroslavovich HTML и CSS 0 01.06.2011 23:09
Не могу разобраться с кодом jey7 JavaScript, Ajax 1 17.06.2010 09:38
не могу разобраться с кодом morocko HTML и CSS 1 10.02.2010 21:23