powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / удалить их ArrayList
25 сообщений из 42, страница 1 из 2
удалить их ArrayList
    #39560327
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class ListUsers {

    public String UserLogin;
    public Object Role;

    public ListUsers(String UserLogin,Object Role) {
        this.UserLogin = UserLogin;
        this.Role = Role;
    }

}


Код: java
1.
public static ArrayList<ListUsers> LU;


из LU надо удалить набор
Код: java
1.
LU.stream().filter(s -> s.Role.equals(role)).....


используя stream как ?
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560328
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удалить ИЗ ArrayList
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560377
mrWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А removeIf() чем не устроил?
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560437
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrWolfА removeIf() чем не устроил?устроил, только остался вопрос скорости...
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560446
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяустроил, только остался вопрос скорости...
Ну, так быстрее создать новый, чем удалять.
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560462
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНу, так быстрее создать новый, чем удалять.и насколько?
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560577
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяиспользуя stream как ?filter, но быстрее через iterator (имхо)
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560641
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usmanfilter,что-то у меня не срослось с ним - покажи.

Usmanбыстрее через iterator (имхо)покажи быстрый вариант.


проверю на одних данных
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560651
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java code conventions ? Инкапсуляция? Не... Не слышал.
вадяUsmanfilter,что-то у меня не срослось с ним - покажи.
Код: java
1.
List<ListUsers> newLU = LU.stream().filter(s -> s.Role.equals(role)).collect(Collectors.toList())
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560682
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
List<ListUsers> newLU = LU.stream().filter(s -> s.Role.equals(role)).collect(Collectors.toList())


не подходит
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560684
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13-й Пилигрим,
создание новой переменной не вариант.
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560690
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Код: java
1.
2.
3.
4.
5.
6.
7.
Iterator<ListUsers> it = LU.iterator();
while (it.hasNext()) {
	ListUsers lu = it.next();
	if (...) {
		it.remove();
	}
}
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560726
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,
действительно , в среднем от 2 до 3 раз быстрее это на 10 записях...
за счёт чего?
и почему рекламируют stream тогда?
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560730
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи почему рекламируют stream тогда?ошибся :) stream тут не приделах
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560732
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяза счёт чего?эффект почти такой же, как при обращении к списку через Си-шный указатель
вадяи почему рекламируют stream тогда?см. LINQ
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560737
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи почему рекламируют stream тогда?
Вот прям "рекламируют"? Посмотри хотя бы вводные доклады по стримам на ютубе.
- На данный момент стримы таки медленнее циклов и будет ли решение этой проблемы в ближайшей пятилетке не известно.
- Стримы, как и многое другое, надо понимать. Они не являются серебряной пулей. Можно легко написать какую-то не эффективную ерунду.

Основное же преимущество стримов в читаемости. Опять, же если готовить правильно, а пихать толстые лямбды где попало в нарушении инкапсуляции.
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560749
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПосмотри хотя бы вводные доклады по стримам на ютубе.пока искал в инете как удалить - только описание как работать с ними, насчет медленности - ни одного упоминания, поэтому и вывод/вопрос такой...
странно - новое и вдруг медленнее старого, читабельность - да. но жаль что такое проигрывает в скорости....
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560760
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпока искал в инете как удалить - только описание как работать с ними
"стримы" и "удалить" это немного из разной оперы.

вадянасчет медленности - ни одного упоминания, поэтому и вывод/вопрос такой...

https://jug.ru/2014/09/сергей-куксенко-stream-api/
YouTube Video
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560765
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну removeIf() это не stream.
удалял так.
Код: java
1.
LU.removeIf(s -> s.Role.equals(role))



для сравнения хочется проверит со stream, но не смог понять как это сделать
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560768
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяну removeIf() это не stream.
удалял так.
Код: java
1.
LU.removeIf(s -> s.Role.equals(role))



для сравнения хочется проверит со stream, но не смог понять как это сделать

Stream это поток данных, а не контейнер. Поэтому удаление к нему не применимо.
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560769
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz"стримы" и "удалить" это немного из разной оперы.фильтрация есть, а удаление отфильтрованного?
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560772
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяфильтрация есть, а удаление отфильтрованного?
Байты из InputStream пробовал когда-нибудь удалять?
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560782
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczБайты из InputStream пробовал когда-нибудь удалять?теперь логика стрима понятна :)
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560816
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cамое быстрое O(n)

https://codereview.stackexchange.com/questions/64011/removing-elements-on-a-list-while-iterating-through-it

ну или параллелизм исходной коллекции потом сливать .
...
Рейтинг: 0 / 0
удалить их ArrayList
    #39560822
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Cамое быстрое O(n)
Не понял к чему это ты. O(n) это операция удаления в массиве. Соответственно удаление в цикле это O(n 2 )
С другой стороны это только теория, так как на практике операции с массивом оптимизированы на уровне железа. Что даёт отличный буст в реальной производительности.

Atum1 ну или параллелизм исходной коллекции потом сливать .
Самое "быстрое" это создать новую коллекцию из нужных элементов.
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / удалить их ArrayList
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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