У меня есть класс enum, который выглядит примерно так:
enum class SomeType(val id: String) {
TYPE1("A"),
TYPE2("B"),
TYPE3("C"),
TYPE4("D")
}
Теперь мне нужно отфильтровать список Something
со строкой, указанной в enum SomeType
.Итак, в основном у меня есть что-то вроде этого:
class Something(val id: String)
// where the value of id is one of the value of the SomeType's id
У меня есть список примерно так:
val somethingList = arrayListOf<Something>(
Something("A"),
Something("B"),
Something("A"),
Something("C"),
Something("D"),
Something("A"),
Something("D")
)
Теперь мне нужно отфильтровать это somethingList
по заданному EnumSet<SomeType>
.
Так что, если у меня есть:
val someTypeSet = EnumSet.of(SomeType.Type3, SomeType.Type2)
, результирующий отфильтрованный список должен быть
val filteredList = arrayListOf<Something>(
Something("B"),
Something("C")
)
Моя идея состоит в том, чтобы преобразовать someTypeSet
вSet<String>
и просто сделайте что-то вроде:
Set<String> setOfSomeTypeIds = convertToSet(someTypeSet)
val filteredList = somethingList.filter { something ->
setOfSomeTypeIds.contains(something.id)
}
Может кто-нибудь подсказать мне, как преобразовать EnumSet
в Set
его значения?
Я также объяснил весь процессна всякий случай есть лучшее решение проблемы выше.
Все будет оценено.
Заранее спасибо.