У меня есть собственный массив 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]);
}
попробуй это 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]); } }




Попробуйте это. Он удалит все элементы, которые имеют 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. == проверяет ссылочное равенство. Также удалить элемент можно с помощью итератора.
Спасибо.. Есть дополнительный получить (я) перед удалить (я)
Вам нужно реализовать осмысленную версию
equals()для вашего класса, если вы хотите использовать такие методы сбора. Помимо этого: узнайте о соглашениях об именах в Java. это венгерское понятиеmSomethingне рекомендуется в Java. И в первую очередь используйте осмысленные имена. ссс точно нет.