powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / удаление элементов из TreeSet
22 сообщений из 22, страница 1 из 1
удаление элементов из TreeSet
    #38686846
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Подскажите, пожалуйста, как удалить элементы из TreeSet по условию.

Элементами TreeSet являются объекты пользовательского класса.

Код: java
1.
2.
3.
4.
5.
6.
public class User{
String name;
String event;
}

TreeSet<User> treeset = new TreeSet<User>();



Нужно удалить все элементы из treeset для которых для которых user.name = "name"(задается как параметр)

Спасибо.
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686849
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У User не определены hashCode() и equals().
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686854
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
String name2Remove = ...
treeset.removeIf(u -> name2Remove.equals(u.name));
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686858
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

спасибо большое.

а hashCode() я так понимаю для удаления не нужен?
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686862
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusа hashCode() я так понимаю для удаления не нужен?
TreeSet требует Comparable/Comparator. В теории можно без equals/hashCode обойтись. На практике это не желательно. Читайте JavaDoc класса java.lang.Object
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686886
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

ну да,
компаратор я написал. А у меня нет метода removeIf.? jdk последняя 8, только что скачал.
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686888
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusBlazkowicz,

ну да,
компаратор я написал. А у меня нет метода removeIf.? jdk последняя 8, только что скачал.
IDE ругается или компилятор?
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686890
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

в принципе нет. Через idea работаю

https://yadi.sk/i/D6bzWEgAVqMkw
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686893
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtus,

В настройках проекта поставь language level
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686894
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,


да и гугл не находит такой метод.
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686896
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
стоит 8
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686900
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusда и гугл не находит такой метод.
У нас разный гугл?
http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#removeIf-java.util.function.Predicate-
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686906
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

:) в первых сточках не было ссылки на это)

значит ещё не включен он в jdk

я вот по этой ссылке скачал:

http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686919
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще сделал через цикл в итоге:

Код: java
1.
2.
3.
4.
5.
6.
7.
public synchronized void delete(User p_user){
        for(User u : treeSet){
            if (u.equals(p_user)){
                treeSet.remove(u);
            }
        }
    }
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686926
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtus:) в первых сточках не было ссылки на это)
Надо знать где искать.

mr_virtusзначит ещё не включен он в jdk
Если ты закроешь глаза, то тебя будет не видно. К чему эти домыслы? Нучись компилировать командной строкой. Чтобы от IDE не зависеть.

mr_virtusя вот по этой ссылке скачал:
http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp
Не поверишь. Я тоже.
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686933
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
import java.util.*;

public class User{
 String name;
 String event;


public static void main(String ... args){
  Set<User> s = new HashSet<>();
  s.add(new User());
  System.out.println(s);
  s.removeIf(u -> u.name == null);
  System.out.println(s);

}

}



jdk1.8.0\bin>javac User.java
jdk1.8.0\bin>java User
[User@1db9742]
[]
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686939
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusВообще сделал через цикл в итоге:

Код: java
1.
2.
3.
4.
5.
6.
7.
public synchronized void delete(User p_user){
        for(User u : treeSet){
            if (u.equals(p_user)){
                treeSet.remove(u);
            }
        }
    }



И работает? И ConcurrentModificationException нет?
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686946
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

авторНадо знать где искать.

это точно!

Код: java
1.
2.
3.
4.
jdk1.8.0\bin>javac User.java
jdk1.8.0\bin>java User
[User@1db9742]
[]



То что он работать будет я, конечно, предполагал, а с IDE есть особенности.

Спасибо ещё раз!
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686952
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,


я в рантайме ещё не проверял :)

Сейчас запущу.
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686961
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,

не работает =((

я уж обрадовался..
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686969
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtus,


Код: java
1.
2.
3.
4.
5.
6.
7.
public synchronized void delete(User p_user){
        for(Iterator<User> it=treeSet.iterator(); it.hasNext();){
            if (it.next().equals(p_user)){
                it.remove();
            }
        }
}
...
Рейтинг: 0 / 0
удаление элементов из TreeSet
    #38686978
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,

да, спасибо большое! так теперь работает :)
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / удаление элементов из TreeSet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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