Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 14

Не выводит ArrayList по ключу map

16.11.2015, 02:39. Показов 1154. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задание такое нужно ,чтобы открывался файл и по команде new (название множества) создавалось множество , а по команде add добавлялось в множество такой то элемент ( команды приведены ниже) .Если что это для дискретной матем. ,тут еще не все команды,но мне бы с этим разобраться
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
53
54
55
56
package test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
 
 
 
public class Test {
 
    
   
    public static void main(String[] args) 
    {
   int value;
      String key,operand=null;
      ArrayList<Integer> p =new ArrayList<Integer>();
      Map<String,ArrayList<Integer> > map = new HashMap<>();
   
         e.openfile();
        
       while(e.scn.hasNext())
       {
           key = e.scn.next();
           System.out.println(key);
       if ("new".equals(key))
      {
           operand=e.scn.next();
           
           System.out.println(operand);
           
          map.put(operand,new ArrayList<Integer>());
            
       }
      
       
       
       if ("add".equals(key))
     {
          
           operand = e.scn.next();
           System.out.println(operand);
          value = e.scn.nextInt();
          System.out.println(value);
          p.add(value);
         map.put(operand,p);
        p.remove(0);
           
           
     }
}
      
System.out.println(map.get(operand).get(0));
 
    }
    
    }
вот так выглядит метод для открытия файла
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
package test;
 
import java.io.File;
import java.util.Scanner;
import javax.swing.JOptionPane;
 
 
public class e {
 
 
 
 
   
    static Scanner scn;
   
    public static void openfile()
   {
       try
       {
           scn = new Scanner(new File("folder//Sets_easy.txt"));
       }catch(Exception e)
       {
           JOptionPane.showMessageDialog(null,"File do not find");
       }
   }
}
в файле вот что находится:
new N
add N 1
add N 2
new Z

Добавлено через 2 часа 52 минуты
чутка поменял , если передавать лист p ,то если я удалю что то из p удалиться и в map ,пытаюсь ввести в map так map.get(operand).add("t"); .Можете подсказать ,что я делаю не так , а то не выводится ,выдает ошибку
Exception in thread "main" java.lang.NullPointerException
at test.Test.main(Test.java:50)
C:\Users\valer\AppData\Local\NetBeans\Ca che\8.1\executor-snippets\run.xml:53: Java returned: 1

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
53
54
55
56
57
58
59
60
61
62
package test;
 
import java.util.ArrayList;
 
import java.util.HashMap;
import java.util.List;
 
import java.util.Map;
 
 
 
public class Test {
 
    
   
    public static void main(String[] args) 
    {
   int value;
      String key,operand=null;
      List<String> p =new ArrayList<String>();
      Map<String,List<String> > map = new HashMap<>();
   
         e.openfile();
        
       while (e.scn.hasNext())
       {
           key = e.scn.next();
          // System.out.println(key);
       if ("new".equals(key))
      {
           operand=e.scn.next();
           
          // System.out.println(operand);
           
          //map.put(operand,new ArrayList<String>());
            
       }
      
       
       
       if ("add".equals(key))
     {
          
           operand = e.scn.next();
          // System.out.println(operand);
          value = e.scn.nextInt();
          //System.out.println(value);
          p.add("k");
         map.get(operand).add("t");
        //p.remove(0);
    
           
           
     }
}
      // System.out.println(p.get(0));
System.out.println(map.get(operand)); 
 
 
    }
    
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2015, 02:39
Ответы с готовыми решениями:

Удаления в Map по ключу
Столкнулся с проблемой пытаюсь удалить по ключу в map и по итератору но нечего не происходит. вот код map&lt;string, int&gt;...

Сортировка Map по ключу
Всем привет! Сортирую Map по ключу через List -&gt; Sort -&gt; Comparator Почему для 'e1.getKey()' не доступен метод 'compareTo()'? ...

Получить значение по ключу из Map
У меня есть такой Map:{v1234546=} Подскажите, пожалуйста, как получить значение для ключа v12.

1
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
16.11.2015, 10:14
NullPointerException значит что нету такого элемента.
Вы считываете первою строку, но не добавляете её в Map, потом вы считываете вторую строку. и пытаетесь обратиться к элементу с ключём N, но его там нету. В вашем коде думаю надо разкоментировать 36 строку. Чтоб он первую строку из файла добавил в Map, и далее вы могли бы к ней обращаться.
Или 50-ую строку обернуть в
Java
1
2
3
if(map.contains(operand)) {
// тут пытаться вставлять элементы
}
Но второй способ в вашем случае будет всё время пусто, так как вы изначально ничего не добавляете в Map.


П.С. Если только начинаете учить джаву, приучите себя сразу давать нормальные имена классам и форматирование кода, форматироване кода Карл. Ибо это вообще не читабельно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2015, 10:14
Помогаю со студенческими работами здесь

Map c++ вывод на консоль по ключу
Нужна помощь! У меня есть контейнер : map &lt;string, int&gt; m1 = { { &quot;wq&quot;, 1 }, { &quot;etr&quot;, 2 }, { &quot;weg&quot;, 4 } }; Нужно получить...

Сортировка map по ключу и значению
Всем привет. Я создаю map и добавляю туда элементы: map&lt;int,string&gt; m; m=&quot;a&quot;; m=&quot;c&quot;; m=&quot;b&quot;; И как мне его отсортировать по...

Получить все значения из Map по ключу
Всем привет! Есть мапа Map&lt;Date, Task&gt; mapByTask = new TreeMap&lt;&gt;(); Где дата это дата само собой, а таск - задача(мой обьект). ...

Контейнер map. Поиск по заданному ключу
Нужно осуществить поиск по заданному ключу. Программа учета в интернет-магазине К примеру вводится название цена ...

Как получить элемент по ключу у map?
Никак не могу понять что я делаю не так... У меня есть указатель std::map&lt;int,std::string&gt;* g; в коде я его инициализирую адресом...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru