Относительно «удалить все по фильтру» вас может заинтересовать одно из следующих:
orders.entries.removeIf { /* your predicate */ }
orders.values.removeIf { /* your predicate */ }
orders.keys.removeIf { /* your predicate */ }
// and/or the extension function removeAll:
orders.entries.removeAll { /* your predicate */ }
orders.values.removeAll { /* your predicate */ }
orders.keys.removeAll { /* your predicate */ }
Что касается удаления первого, я предполагаю, что вы просто хотите удалить любой (но не более 1) соответствующий элемент (не фактический первый в Map
). Возможно, вы могли бы просто повторить / отфильтровать, взять первое и просто вызвать remove
для этого ..., например ::
val yourMatchingEntry = orders.entries.first { /* your predicate */ }
.also { orders.entries.remove(it) }
Затем просто возвращается любая (кроме 1) записей карты, соответствующих вашему предикату.