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

Код: 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
28.11.2017, 09:26
    #39560328
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
удалить ИЗ ArrayList
...
Рейтинг: 0 / 0
28.11.2017, 10:42
    #39560377
mrWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
А removeIf() чем не устроил?
...
Рейтинг: 0 / 0
28.11.2017, 11:51
    #39560437
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
mrWolfА removeIf() чем не устроил?устроил, только остался вопрос скорости...
...
Рейтинг: 0 / 0
28.11.2017, 11:56
    #39560446
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
вадяустроил, только остался вопрос скорости...
Ну, так быстрее создать новый, чем удалять.
...
Рейтинг: 0 / 0
28.11.2017, 12:20
    #39560462
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
BlazkowiczНу, так быстрее создать новый, чем удалять.и насколько?
...
Рейтинг: 0 / 0
28.11.2017, 14:38
    #39560577
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
вадяиспользуя stream как ?filter, но быстрее через iterator (имхо)
...
Рейтинг: 0 / 0
28.11.2017, 15:38
    #39560641
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
Usmanfilter,что-то у меня не срослось с ним - покажи.

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


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


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

Код: 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
28.11.2017, 17:07
    #39560726
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
Usman,
действительно , в среднем от 2 до 3 раз быстрее это на 10 записях...
за счёт чего?
и почему рекламируют stream тогда?
...
Рейтинг: 0 / 0
28.11.2017, 17:12
    #39560730
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
вадяи почему рекламируют stream тогда?ошибся :) stream тут не приделах
...
Рейтинг: 0 / 0
28.11.2017, 17:16
    #39560732
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
вадяза счёт чего?эффект почти такой же, как при обращении к списку через Си-шный указатель
вадяи почему рекламируют stream тогда?см. LINQ
...
Рейтинг: 0 / 0
28.11.2017, 17:24
    #39560737
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить их ArrayList
вадяи почему рекламируют stream тогда?
Вот прям "рекламируют"? Посмотри хотя бы вводные доклады по стримам на ютубе.
- На данный момент стримы таки медленнее циклов и будет ли решение этой проблемы в ближайшей пятилетке не известно.
- Стримы, как и многое другое, надо понимать. Они не являются серебряной пулей. Можно легко написать какую-то не эффективную ерунду.

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

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

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



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



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

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

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

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

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


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