@er12

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

У меня есть тип данных T - Integer, String
List a. как мне проверить содержит ли а, число 17, не учитывая значение String
  • Вопрос задан
  • 189 просмотров
Пригласить эксперта
Ответы на вопрос 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, то везде будут числа.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы