将 ArrayMap 转换为 ArrayList - Kotlin

Convert an ArrayMap to ArrayList - Kotlin

我有一个 ArrayMap,我想要一个要创建的 Chat 列表和 recyclerview。

val chats : ArrayMap<String,Chat>? = ArrayMap()

RecyclerView.Adapter

class ChatAdapter(var chats : ArrayList<Chat>){
   .
   .
   .
}

我从 firebase 得到这个 ArrayMap。获取 ArrayList 的最佳方法是什么?

您不应该在 public 构造函数中使用 ArrayList(因为这样您就完全依赖于该实现)。应该是MutableList接口:

class ChatAdapter(var chats : MutableList<Chat>){

我猜 ArrayMap 是一个普通的 Map(因为我不知道 class)。 你可以只写

val chats : ArrayMap<String,Chat>? = ArrayMap()
// ... initialize the chat
val adapter = ChatAdapter(am.values.toMutableList())

如果出于某种原因你真的需要ArrayList class,你可以写

val adapter = ChatAdapter(ArrayList(am.values))

如果您不需要明确的 ArrayList,您可以像这样使用 ArrayMap.map() 函数:

val chats : ArrayMap<String,Chat>? = ArrayMap()
val list : List<Chat> = chats.map { it.value }