Удалить первый элемент MutableMap - PullRequest
0 голосов
/ 29 августа 2018

Имейте изменчивую карту как это

val orders: MutableMap<Int, MutableList<MenuItem>>

Как мне удалить первый элемент или удалить все по фильтру?

1 Ответ

0 голосов
/ 29 августа 2018

Относительно «удалить все по фильтру» вас может заинтересовать одно из следующих:

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) записей карты, соответствующих вашему предикату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...