Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильней удалить элемент в HashMap с введёным с клавиатуры ID? / 8 сообщений из 8, страница 1 из 1
27.11.2014, 14:53
    #38818438
IShapovalov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID. При этом если введено "n", а затем нажата клавиша Enter то выходем в предыдущее меню, если нечего не введено и нажата клавиша Enter, то уведомляем то что нечего не введено и просим павторно ввести ID. Если введё ID который есть в HashMap то удаляем этот элемент в HashMap с этим ID.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
        public static void menuDelete()
        {
            BufferedReader bufferedReader =
                    new BufferedReader(new InputStreamReader(System.in));
            String exitToMenuTaskManage = "n";
            String tempID = null;
            System.out.println("Choose the number of deleted task. choice by entering the ID number into the console,\n" +
                    " and then press Enter. To return to the previous menu, press \"n\" and then press Enter.");
            for (HashMap.Entry<Integer, Task> pair : taskHashMap.entrySet())
            {
                System.out.println(+ pair.getKey() + " - " + pair.getValue().getName()  + " - "
                        + pair.getValue().getDescription() + " " + pair.getValue().getStartDate() + " - "
                        + pair.getValue().getActive());
           }
            try {
                tempID = bufferedReader.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try{

                if (tempID.equals(exitToMenuTaskManage))
                {
                    menuTaskManage();
                }else if(tempID.length() == 0)
                {
                    System.err.println("You have entered an invalid ID format. Try again.(Do not put more than one symbol)");
                    menuDelete();
                }else if(tempID.length() >= 1)
                {
                    for (HashMap.Entry<Integer, Task> pair : taskHashMap.entrySet())
                    {
                        if(pair.getKey().equals(Integer.parseInt(tempID)))
                        {
                            taskHashMap.remove(Integer.parseInt(tempID));
                            System.out.println("The " + Integer.parseInt(tempID) + " ID successfully enabled");
                            menuTaskManage();
                        }
                    }
                }
                else
                {
                    System.err.println("You have entered an invalid ID format. Try again.");
                    menuDelete();
                }
            }catch (Exception e)
            {
                System.err.println("You have entered an invalid ID format. Try again.");
                menuDelete();
            }

        }
...
Рейтинг: 0 / 0
27.11.2014, 15:46
    #38818505
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
IShapovalov,

HashMap-у всё равно с клавиатуры вы вводите ключи или мышь между ягодиц зажали и по стулу елозите.
https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html
...
Рейтинг: 0 / 0
27.11.2014, 16:21
    #38818535
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
Мне кажется автор тут пытается сформулировать постановку "String autocompletition"
...
Рейтинг: 0 / 0
27.11.2014, 16:42
    #38818560
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
IShapovalov,
А для чего этот цикл?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 for (HashMap.Entry<Integer, Task> pair : taskHashMap.entrySet()){
                        if(pair.getKey().equals(Integer.parseInt(tempID)))
                        {
                            taskHashMap.remove(Integer.parseInt(tempID));
                            System.out.println("The " + Integer.parseInt(tempID) + " ID successfully enabled");
                            menuTaskManage();
                        }
}



Тупо заменяется на
Код: java
1.
map.remove(key);


и даже if(map.containsKey(key)) не нужен
...
Рейтинг: 0 / 0
27.11.2014, 22:19
    #38818870
IShapovalov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
Blazkowicz,

но я же не знаю что пользователь ввёл
...
Рейтинг: 0 / 0
27.11.2014, 22:53
    #38818887
IShapovalov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
Blazkowicz,

цикл для проверки есть ли в мапе элемент с введёным ключом
...
Рейтинг: 0 / 0
27.11.2014, 23:23
    #38818904
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
remove() :Returns:
the previous value associated with key, or null if there was no mapping for key.
(A null return can also indicate that the map previously associated null with key.)И даже если вы собрались заложиться на ключ с пустым значением, то containsKey() :Returns:
true if this map contains a mapping for the specified key.Без всяких циклов.
Чтите доки, в общем.
...
Рейтинг: 0 / 0
28.11.2014, 08:57
    #38819002
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильней удалить элемент в HashMap с введёным с клавиатуры ID?
IShapovalovBlazkowicz,

цикл для проверки есть ли в мапе элемент с введёным ключом
И если нет, то что? О, ужас! Даже исключения не будет.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильней удалить элемент в HashMap с введёным с клавиатуры ID? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]