Самый простой способ в Java 8 или более поздней версии - использовать Collection#removeIf
:
mChats.removeIf(str -> str.getID().equals(ID));
Кстати, в Java принято, чтобы поля начинались со строчной буквы.
Сборки отладки будут содержать символы отладки, которые могут использоваться отладчиком. Сборки выпуска часто не содержат отладочных символов, поэтому, если вы получите аварийный дамп, все, что вы получите, это набор шестнадцатеричных адресов вместо полезных имен символов.
Сборки отладки не компилируются с оптимизацией ( -O0
с gcc), тогда как сборки выпуска компилируются с оптимизацией (обычно -O2
или -O3
). Оптимизация делает отладку намного сложнее. Если вы попытаетесь отладить приложение релиза, отладчик будет сильно сбит с толку, поскольку операторы сборки больше не совпадают с операторами HLL, операторы переупорядочиваются, функции становятся встроенными, циклы развертываются и т. Д.
Сборки отладки и выпуска также определены разные символы препроцессора, и некоторый код условно компилируется на основе этих (например, проверок границ массивов, утверждений и т. д.), хотя это сильно зависит от приложения. Типичным примером является #define NDEBUG
для режима освобождения, который приводит к удалению утверждений.
В Tiger сборки отладки «связаны нулями». Это оптимизировано только для вашей среды и не является полноценной сборкой.