Удалить элементы из массива объектов с помощью массива строк - android

У меня есть собственный массив ArrayList и String. Я хочу удалить строку в ArrayList, которая соответствует значению массива String.

Мой список массивов.....

ArrayList<SqlFavHeaderData> hList = db.getAllHeaderDetails();

SqlFavHeaderData

private String mId;
private String mType;
private double mPrice;
private String mBeds;

Строковый массив....

String[] ss = new String[i];

У него есть значения, соответствующие середина в ArrayList.

Я хочу удалить элементы из ArrayList, сравнивая их с середина, которые соответствуют значениям в массиве строк.

Я пробовал так. Но не повезло...

   for (int i = 0; i < 10; i++) {
        hList.remove(ss[i]); 
    }

Вам нужно реализовать осмысленную версию equals() для вашего класса, если вы хотите использовать такие методы сбора. Помимо этого: узнайте о соглашениях об именах в Java. это венгерское понятие mSomething не рекомендуется в Java. И в первую очередь используйте осмысленные имена. ссс точно нет.

GhostCat 15.04.2019 08:36

попробуй это ArrayList<String> hList = = db.getAllHeaderDetails(); String[] ss = new String[i]; for (int i = 0; i < hList.size(); i++) { if (hList.get(i).equalsIgnoreCase(ss[i])){ hList.remove(ss[i]); } }

Hemant Parmar 15.04.2019 08:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
145
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это. Он удалит все элементы, которые имеют mID, похожий на ваш массив строк.

    for (int i=0; i< hList.size(); i++) {
        for (String mID: ss) {
            if (hList.get(i).getmId().equals(mID)) {
                hList.get(i).remove(i);
            }
        }
    }

Если вы используете java8, вы можете использовать:

      for(String mid:ss) {
            hList.removeIf(sqldata->sqldata.getmId().equals(mid));
        }

Используйте hList.get(i).getmId().equals(mID) вместо hList.get(i).getmId() == mID. == проверяет ссылочное равенство. Также удалить элемент можно с помощью итератора.

Gökberk Yağcı 15.04.2019 09:07

Спасибо.. Есть дополнительный получить (я) перед удалить (я)

D.madushanka 15.04.2019 09:08

Другие вопросы по теме