Проверьте, существует ли элемент в TreeSet в Java
Как искать объекты, хранящиеся в TreeSet? ArrayList реализует java.util.List который предоставляет get(int index) для получения объекта с его индексом. В отличие от Список, TreeSet реализует интерфейс java.util.Set который не позволяет индексировать объекты, поэтому к нему нельзя получить доступ напрямую.Однако эти две коллекции имеют общий contains() чтобы проверить, соответствует ли список (в нашем случае TreeSet) содержит определенный элемент. Вы можете просмотреть TreeSet с Iterator и проверяем равенство условием if(o1.equals(o2)) пока не дойдет до нужного элемента. Здесь мы говорим о Set, чтобы элементы были перемешаны и не имели точного индекса.
import java.util.Iterator;Компиляция и выполнение этого кода приводит к следующему:
import java.util.TreeSet;
public class search_element {
public static void main(String[] args) {
// создание TreeSet
TreeSettset = new TreeSet ();
// заполняем TreeSet
tset.add("abc");
tset.add("bcd");
tset.add("cde");
tset.add("def");
tset.add("efg");
Строка e = "def";
// проверяем наличие определенного элемента в TreeSet
boolean exists = tset.contains(e);
System.out.println(e+" существует в treeset? "+существует);
Строка e2 = "eee";
exists = tset.contains(e2);
System.out.println(e2+" существует в treeset? "+существует);
Iteratoriterator = tset.iterator();
// ищем элемент и проверяем равенство с equals
while (iterator.hasNext()){
String obj = iterator.next();
if(obj.equals(e))
System.out.println("объект "+e+" существует в списке");
}
}
}
def существует в treeset? trueReferences:
eee существует в treeset? false
объект def существует в списке
StackOverFlow: Почему в Java TreeSet нет метода get()?