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

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

10.05.2015, 06:34. Показов 2046. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru