Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для иван я
17 / 17 / 16
Регистрация: 15.12.2012
Сообщений: 536

Исправить вывод из HashMap

10.05.2015, 06:34. Показов 2192. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот код.
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet(urlPatterns = {"/HTTPServlet"})
public class HTTPServlet extends HttpServlet {
 
    private double lambda, time;
    Map<Object, List<Message>> results = new HashMap();
    Map<Object, List<Message>> results1 = new HashMap();
    Map<Object, List<Message>> results2 = new HashMap();
    final String ACTION_ATTR = "what_to_do";
    final Integer ACT_SEND = 0,
            ACT_GETRES = 1;
    private int q;
    private int hg;
 
    @Override
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        String act = request.getParameter(ACTION_ATTR);
        int raz = Integer.parseInt(act);
        
       // PrintWriter out = response.getWriter();
        if (raz == (ACT_SEND)) {
            Object KeyID,KeyID1,KeyID2;
            List idcons = new ArrayList();
            List idcons1 = new ArrayList();
            List idcons2 = new ArrayList();
            BlockingQueue<Message> queue = new ArrayBlockingQueue<>(100);
            Producer producer = new Producer(queue, idcons);
            new Thread(producer).start();
            Consumer consumer = new Consumer(queue, idcons1);
            new Thread(consumer).start();
            Consumer1 consumer1 = new Consumer1(queue, idcons2);
            new Thread(consumer1).start();
            
            KeyID = request.getSession().getId();
            KeyID1 = request.getSession().getId();
            KeyID2 = request.getSession().getId();
            results.put(KeyID, idcons);
            results1.put(KeyID1, idcons1);
            results2.put(KeyID2, idcons2);
            String firstName = request.getParameter("firstname");
            String firstName1 = request.getParameter("firstname1");
 
            lambda = Double.parseDouble(firstName);
            time = Double.parseDouble(firstName1) * 1000;
          //  out.println("<p  <font style=\"color:blue\"><h1>Данные отправлены на сервер. Чтобы просмотреть результат вернитесь обратно на начальную страницу и нажмите кнопку \"Результат\"</h1></font></p>");
           // out.println("<br><input type=\"button\" class=\"button\" value=\"Вернуться \" style=\"color:red\"onclick=\"location.href='http://localhost:8080/GetServlet'\" /></br>");
 
        } else if (raz == (ACT_GETRES)) {
response.setContentType("text/html; charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
            try {
 
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Система массового обслуживания</title>");
                out.println("</head>");
                out.println("<body>");
                Object KIden;
 
                KIden = request.getSession().getId();
 
                List<Message> output = results.get(KIden);
                List<Message> output1 = results1.get(KIden);
                List<Message> output2 = results2.get(KIden);
                for (Message Key : output1) {
       
                    out.println("<p align=\"right\">" + "Заявка №" + Key.getMsg() +"обработана 1 каналом"+ "</p>");
                    
                }
              //  output1.clear();
                for (Message Keyd : output2) {
 
                    out.println("<p align=\"right\">" + "Заявка №" + Keyd.getMsg() +"обработана 2 каналом"+ "</p>");
                  
                }
 
                for (Message Key : output) {
                    out.println("<p align=\"left\">" + "Поступила  " + Key.getMsg() + "</p>");
                
                }
                out.println("очередь" + q);
                out.println("отказы" + hg);
                out.println("<button onclick=\"javascript:window.location.reload()\">Обновить</button>");
                out.println("</body>");
                // конец html-документа     
                out.println("</html>");
 
            } catch (Exception e) {
            }
        } else {
            throw new IllegalArgumentException("Unknown param value: " + act);
        }
    }
    
    
     public class Producer implements Runnable {
 
        private BlockingQueue<Message> queue;
        private List idcons;
 
        public Producer(BlockingQueue<Message> q, List<Message> out2) {
            this.queue = q;
            idcons = out2;
        }
 
        @Override
        public void run() {
            Random r = new Random();
 
            for (int i = 0; i < 10000; i++) {
                Message msg = new Message("" + i);
                try {
                    double c = Math.abs(Math.log(r.nextDouble()) * lambda);
                    long wer = (long) (c * 1000);
                    Thread.sleep((long) wer);
                    if (q < 5) {
                        q++;
 
                    }
 
                    if (q == 5) {
                        hg++;
 
                        q--;
 
                    } else {
                       queue.put(msg);
                       System.out.println("Поступила "+msg.getMsg());
                    idcons.add(msg);
 
 
                    }
 
 
 
                } catch (InterruptedException e) {
                }
            }
            //adding exit message
 
        }
    }
    
 
    public class Consumer implements Runnable {
 
        private BlockingQueue<Message> queue;
        private List idcons1;
 
        public Consumer(BlockingQueue<Message> q, List<Message> out1) {
            this.queue = q;
            idcons1 = out1;
        }
 
        @Override
        public void run() {
            try {
                Message msg;
                //consuming messages until exit message is received
                while ((msg = queue.take()).getMsg() != "exit") {
                       q--;
                    Thread.sleep((long) time);
                    System.out.println("Заявка №" + msg.getMsg()+" обработана 1 каналом");
                    idcons1.add(msg);
                 
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
 
    public class Consumer1 implements Runnable {
 
        private BlockingQueue<Message> queue;
        private List idcons2;
 
        public Consumer1(BlockingQueue<Message> q, List<Message> out1) {
            this.queue = q;
            idcons2 = out1;
        }
 
        @Override
        public void run() {
            try {
                Message msg;
                //consuming messages until exit message is received
                while ((msg = queue.take()).getMsg() != "exit") {
                    q--;
                    Thread.sleep((long) time);
                    System.out.println("Заявка №" + msg.getMsg()+" обработана 2 каналом");
                    idcons2.add(msg);
 
                    
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
 
   
}
как выводит показано на скриншоте. Нужно сделать так чтобы поступившие и обработанные заявки появлялись на одном уровне, а не как сейчас поступившие снизу, а обработанные сверху
Миниатюры
Исправить вывод из HashMap  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2015, 06:34
Ответы с готовыми решениями:

Вывод содержимого HashMap
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import...

Hashmap вывод в адаптер
Здравствуйте.Имеется проблема сделал приложение которое парсит данные с сайта и добавляет в listview делал он так znak_z.setAdapter((new...

Вставка HashMap в HashMap меняет все элементы
Вставляю HashMap в HashMap генерируя карту доски для шахмат, привожу тестовый пример, вставляется только данные последней ячейки доски, с...

24
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
10.05.2015, 19:30
Студворк — интернет-сервис помощи студентам
так какие данные надо вводить?

Добавлено через 40 минут
прощу прошения, занять был...
я тоже только учусь на JAV'е, вообщем попробуйте вот так:
создайте CSS файл в нем:
CSS
1
2
3
4
5
6
7
8
#l{
    float: left;
    width: 40%;
}
#r{
    float:right;
    width: 40%;
}
а на вашем сервлете добавьте:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
out.println("<link type=\"text/css\" rel=\"stylesheet\" href=\"resources/css/style.css\"/>"); // путь к файлу CSS
 
//выводим с левой стороны
out.println("<div id=\"l\">");
for (Message Key : output) {
     out.println("<p>" + "Поступила  " + Key.getMsg() + "</p>");
     request.getParameter(Key.getMsg());
}
out.println("</div>");
 
//выводим с правой стороны
out.println("<div id=\"r\">");
for (Message Keyd : output2) {
   out.println("<p align=\"right\">" + "Заявка №" + Keyd.getMsg() +"обработана 2 каналом"+ "</p>");
   out.println("<p align=\"right\">" + "Заявка №" + key1 +"обработана 1 каналом"+ "</p>");
   out.println("<p align=\"left\">" + "Поступила  " + key3 + "</p>");
   key2= Keyd.getMsg();
}
out.println("</div>");
но это самый не правильный вариант... зато рабочий
0
 Аватар для иван я
17 / 17 / 16
Регистрация: 15.12.2012
Сообщений: 536
11.05.2015, 12:37  [ТС]
asus, спасибо не надо, я нашел другой выход из ситуации.
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
11.05.2015, 12:40
и какой же? думаю остальным тоже будет полезна.
0
 Аватар для иван я
17 / 17 / 16
Регистрация: 15.12.2012
Сообщений: 536
11.05.2015, 13:03  [ТС]
asus, не такой как хотел но все равно лучше для просмотра
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet(urlPatterns = {"/HTTPServlet"})
public class HTTPServlet extends HttpServlet {
 
    private double lambda, time;
    Map<Object, List<String>> results = new HashMap();
    final String ACTION_ATTR = "what_to_do";
    final Integer ACT_SEND = 0,
            ACT_GETRES = 1;
    private int q;
    private int hg;
 
    @Override
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        String act = request.getParameter(ACTION_ATTR);
        int raz = Integer.parseInt(act);
        response.setContentType("text/html; charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        if (raz == (ACT_SEND)) {
            Object KeyID;
            List idcons = new ArrayList();
 
            BlockingQueue<Message> queue = new ArrayBlockingQueue<>(100);
            Producer producer = new Producer(queue,idcons);
            new Thread(producer).start();
            Consumer consumer = new Consumer(queue, idcons, "1 каналом");
            new Thread(consumer).start();
            Consumer1 consumer1 = new Consumer1(queue, idcons, "2 каналом");
            new Thread(consumer1).start();
 
            KeyID = request.getSession().getId();
            results.put(KeyID, idcons);
            String firstName = request.getParameter("firstname");
            String firstName1 = request.getParameter("firstname1");
            lambda = Double.parseDouble(firstName);
            time = Double.parseDouble(firstName1) * 1000;
            out.println("<p  <font style=\"color:blue\"><h1>Данные отправлены на сервер. Чтобы просмотреть результат вернитесь обратно на начальную страницу и нажмите кнопку \"Результат\"</h1></font></p>");
            out.println("<br><input type=\"button\" class=\"button\" value=\"Вернуться \" style=\"color:red\"onclick=\"location.href='http://localhost:8080/GetServlet'\" /></br>");
        } else if (raz == (ACT_GETRES)) {
            try {
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Система массового обслуживания</title>");
                out.println("</head>");
                out.println("<body>");
                Object KIden;
                KIden = request.getSession().getId();
                List<String> output = results.get(KIden);
                for (String Key : output) {
                    out.println("<p align=\"left\">" + Key.toString() + "</p>");
                }
 
                out.println("очередь" + q);
                out.println("отказы" + hg);
                out.println("<button onclick=\"javascript:window.location.reload()\">Обновить</button>");
                out.println("</body>");
                out.println("</html>");
            } catch (Exception e) {
            }
        } else {
            throw new IllegalArgumentException("Unknown param value: " + act);
        }
    }
 
    public class Producer implements Runnable {
 
        private BlockingQueue<Message> queue;
      private List idcons;
 
        public Producer(BlockingQueue<Message> q, List<String> out1) {
            this.queue = q;
         idcons=out1;
        }
 
        @Override
        public void run() {
            Random r = new Random();
            for (int i = 0; i < 10000; i++) {
                Message msg = new Message("" + i);
                try {
                    double c = Math.abs(Math.log(r.nextDouble()) * lambda);
                    long wer = (long) (c * 1000);
                    Thread.sleep((long) wer);
                    if (q < 5) {
                        q++;
                    }
                    if (q == 5) {
                        hg++;
                        q--;
                    } else {
                      String outputLine="Поступила " + msg.getMsg();
                        queue.put(msg);
                        idcons.add(outputLine);
                       
                    }
                } catch (InterruptedException e) {
                }
            }
        }
    }
 
    public class Consumer implements Runnable {
 
        private BlockingQueue<Message> queue;
        private List idcons;
        private String cname;
 
        public Consumer(BlockingQueue<Message> q, List<String> out1, String chanelName) {
            this.queue = q;
            idcons = out1;
            cname = chanelName;
 
        }
 
        @Override
        public void run() {
            try {
                Message msg;
                //consuming messages until exit message is received
                while ((msg = queue.take()).getMsg() != "exit") {
                    q--;
                    Thread.sleep((long) time);
                    String outputLine="Заявка №" + msg.getMsg() + " обработана " + cname;
                    System.out.println(outputLine);
                    idcons.add(outputLine);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
 
    public class Consumer1 implements Runnable {
 
        private BlockingQueue<Message> queue;
        private List idcons;
        private String cname;
 
        public Consumer1(BlockingQueue<Message> q, List<String> out1, String chanelName) {
            this.queue = q;
            idcons = out1;
            cname = chanelName;
        }
 
        @Override
        public void run() {
            try {
                Message msg;
                //consuming messages until exit message is received
                while ((msg = queue.take()).getMsg() != "exit") {
                    q--;
                    Thread.sleep((long) time);
                    String outputLine="Заявка №" + msg.getMsg() + " обработана " + cname;
                    idcons.add(outputLine);
                    System.out.println(outputLine);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
11.05.2015, 13:05
понятно, удачи!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2015, 13:05

Вывод на экран чётных слов строки исправить на вывод нечётных слов
#include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;stdio.h&gt; int i,l,j,k,p,n; char txt; char a,b; main() { ...

Исправить вывод
Здравствуйте, помогите пожалуйста сделать вывод номера товара не &quot;01-го, 11-го, 21-го&quot;, а 1-го, 2-го, 3-го вот код using System; ...

Исправить ввод и вывод
Написал программу но есть две проблемы: 1.Почему не выводиться массив?(исправьте пожалуйста)2.Помогите сделать ввод строк и столбцов с...

Структуры. Исправить вывод
Задание: На основе данных входного файла составить инвентарную ведомость склада, включив следующие данные: вид продукции, стоимость, сорт,...

Исправить вывод текста
Помогите исправить вывод На первом скриншоте как должно выводить, а на втором как вывод. В чём проблема, подскажите пожалуйста ...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru