Задать вопрос
@er12

Как правильно искать элемент в List?

У меня есть тип данных T - Integer, String
List a. как мне проверить содержит ли а, число 17, не учитывая значение String
  • Вопрос задан
  • 189 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bromzh
Drugs-driven development
Надо вопросы чётче формулировать. Так как нифига не понятно, как у тебя устроены классы. Нет такого типа T, этой буквой обычно обозначают параметризированный тип.
Если надо просто узнать есть объект или нет, то никакой параметризации не требуется:

public class Foo {

    static List<Object> list = new LinkedList<>();

    public static boolean hasElem(Object elem) {
        for (Object item : list) {
            if (Objects.equals(item, elem)) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {

        list.add(1);
        list.add("s1");
        list.add(2);
        list.add("s2");
        list.add(3);
        list.add("s3");

        if (hasElem(3)) {
            System.out.println("Has elem 3");
        }
        if (hasElem("s2")) {
            System.out.println("Has elem \"s2\"");
        }
        if (hasElem('c')) {
            System.out.println("Has elem 'c'");
        }
    }
}


Если же типом T ты параметризуешь свой класс/метод, то ничего проверять не надо: когда ты создашь экземпляр такого класса, параметризованный типом String, то и список будет только из строк и поиск будет по строкам. Когда параметризуешь его Integer, то везде будут числа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Сбер Москва
от 300 000 до 350 000 ₽
DIGITAL SECTOR Краснодар
от 250 000 до 450 000 ₽
Сбер Санкт-Петербург
До 350 000 ₽