Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
1

Список-таблица для строковых заказов

18.02.2020, 11:51. Показов 1065. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите конструкцию Java плиииз... (давно в JS - забыл как это в Java работало)

Надо сделать что-то вроде списка текстовых команд/сообщений. Лоток? Конвеер?

С одной стороны списка "подаются" задачи/заявки и могут накапливаться, а с другой они "отправляются пользователю" (по мере его "освобождения", а не когда список переполнится)

Что-то вроде push/pop, но "с одной стороны добавляем, а с другой забираем".

Список может быть большим. И может опустошаться если все выполнено.

Есть какая-нибудь конструкция, специально "оптимизированная" под подобное?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2020, 11:51
Ответы с готовыми решениями:

Таблица заказов
Здравствуйте, создаю таблицу заказов, если можно прокоментируйте правильно ли, боюсь чтоб потом не...

Страница с формами редактирования заказов + постраничный вывод = пустышки, если кол. заказов < заказов на стр.
Добрый день. Есть у меня страничка обновления заказов с вот таким кодом &lt;? /* Соединяемся с...

Таблица заказов в магазине
Как правильно сделать таблицу заказов в инет-магазине. Чек заказывает несколько товаров, они...

Построить список строковых элементов и вернуть список длин этих элементов
С помощью оператора fmap написать программу, которая: Строит список элементов типа String (Seq)...

6
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
18.02.2020, 12:33 2
Что конкретно нужно, вьюха-список, сервис какой-то, запросы к бд или что? Что такое заявки и откуда они берутся?
Цитата Сообщение от andyj Посмотреть сообщение
Есть какая-нибудь конструкция, специально "оптимизированная" под подобное?
Цитата Сообщение от andyj Посмотреть сообщение
список
RecyclerView
0
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
18.02.2020, 12:54 3
Для обработки данных в коде - ArrayList, List
Для отображения RecyclerView
0
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
18.02.2020, 13:13  [ТС] 4
Цитата Сообщение от nikooolay Посмотреть сообщение
Для обработки данных в коде - ArrayList, List
Для отображения RecyclerView
Мне не для отображения! Только для циклической обработке в коде.

...когда учил Java (Spring) то понял что там десяток разных видов списков "оптимизированных под разные операции". Где-то поиск быстрее в разы, но добавление в 2-3 раза медленнее, где-то "вставка всередину" не предусмотрена вообще (типа Array[100]). Где-то push/pop есть, где-то вообще не предусмтрен...

сейчас сделал так (на "класику оформления" не ругайтесь - я из JavaScript "не на долго заглянул")
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        public List<String> subscribe_msg = new ArrayList<String>();
 
// добавляем задачу
        public boolean subscribe_msg_add(String msg) {
            return subscribe_msg.add(msg);
        }
 
// удаляем самую первую перед отправкой "на обработку"
        public String subscribe_msg_get_next() {
            if(subscribe_msg.size()==0){
                return "";
            }else{
                String msg = subscribe_msg.remove(0);
                return msg;
            }
        }
Но подозреваю что это не самый "оптимизированный" список...
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
18.02.2020, 13:40 5
Лучший ответ Сообщение было отмечено andyj как решение

Решение

В чём проблема загуглить любое описание и выбрать нужный "список"?
https://habr.com/ru/post/237043/

Добавлено через 6 минут
Непонятно, в чём вообще проблема, если коллекция такая большая, что стоит вопрос низкоуровневой оптимизации, зачем тогда выгружать весь этот список в переменную? Пусть лежит там где-то в бд, сделал запрос - получил одну запись.
1
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
18.02.2020, 14:00  [ТС] 6
Цитата Сообщение от ExFau$t Посмотреть сообщение
Непонятно, в чём вообще проблема, если коллекция такая большая, что стоит вопрос низкоуровневой оптимизации, зачем тогда выгружать весь этот список в переменную? Пусть лежит там где-то в бд, сделал запрос - получил одну запись.
Я еще не знаю сколько записей будет. В идеале не больше 1-3, а в случае аврала... Может и 1000. Критичность от потери - низкая (я знаю что такое андроид). В среднем 1 задача в 3-5 секунд, но нужно предусмотреть и 100-10К в секунду. (если не таймер будет добавлять, а в цикле случайно сработает)

Когда работал в Java, застал целый длинный спор "гуру" по поводу какой из списков правильнее использовать в текущей задаче... С тех пор к этому как-то серьезнее отношусь. А в Java пришел не на долго (ради одного мелкого проекта) и через неделю-две назад в JS - поэтому глубоко "восстанавливать скилл" не охота!

Спасибо за ссылку! Попробую перевести на Vector (потокобезопасность не помешает)
0
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
18.02.2020, 14:16 7
10к в секунду, андройд скорее всего не потянет. Если вам нужно что-то действительно высокопроизводительное - смотрите в сторону базы данных, большую производительность вам скорее всего никто не даст.
Но все сильно зависит от нагрузок, и типа данных, попробуйте реализовать два варианта:
- со списком
- с базой данных
и посмотреть что будет быстрее

что касается вашего кода
1 Не создавайте лишних переменных, возвращайте результат сразу же:
Java
1
2
3
4
5
6
public String subscribe_msg_get_next() {
            if(subscribe_msg.size()==0){
                return "";
            }else{
              return  subscribe_msg.remove(0);
            }
2 Проверка на размер списка тоже ударить на производительность, подумайте как ее реализовать, Exception может оказаться дешевле
3 Не пишите комменты на которые можно понять их названия функции (исключение у если у вас настроен javadoc), и пишите комменты в коде только на английском, вы не знайте кто и откуда будет поддерживать этот код через 5 или 10 лет
1
18.02.2020, 14:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2020, 14:16
Помогаю со студенческими работами здесь

Выдать список заказов, скидка на которые больше 20%
Выдать список заказов, сидка на которые больше 20%. SELECT * FROM SALES ...

Вывести список всех заказов с указанием даты их выполнения
Салон мебели: №заказа, дата заказа, ФИО заказчика, адрес заказчика, срок выполнения в днях,...

Как вывести список заказов, на сумму больше 100?
Всем привет. Есть три таблицы: 1. users(юзеры): поля: user_id, name. 2. products(продукты):...

Запрос, возвращающий список всех клиентов, совершивших более 3 заказов
Добрый день. Дано: 1-я таблица Commande (id_commande, id_client, date_commande) 2-я таблица...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru