如何将项列表映射到另一个函数的参数?



我正试图找出将我的排序映射到另一个函数的参数的最佳方法。这是我所拥有的一个例子。

data class ValueDescription (val length: Int, val count: Int)
// Now I am trying to map to a variable that looks like this
// This variable cannot be changed, I have to return this variable in this format
// The output will be a list of ValueDescriptions with a length and count for each entry of the map I have
// I will add the results of myValues to a mutable list later
val myValues = ValueDescription(_length here__, __count here__)

我有一个排序映射我想把它映射到我的值

// The map will look like this
// Where both Ints hold the lengths and counts
// For example I would have the length of 7 to count of 8
val out = Map<Int, Int>

我怎么能把值在我的排序地图,并将它们放入变量myValues?

我尝试通过循环通过我的地图与forEach方法和做一些像

out.map{it.key to myValues.ValueDescription.length}

但这似乎不工作。

我不确定我完全理解了这个问题。如果我没记错的话,你的输入是Map<Int, Int>,你想把它转换成List<ValueDescription>

你可以使用map函数:

val inputMap: Map<Int, Int> = TODO("provide the initial map here")
val myValues = inputMap.map { (l, c) -> ValueDescription(l, c) }

这里的map函数遍历map的条目,并通过调用lambda(括号{ ... }之间的部分)将每个条目转换为ValueDescription类型的值。

这里映射的每个条目包含一个键(长度)和一个值(计数)。除了使用it.keyit.value,您还可以使用括号,就像我在这里对(l, c)所做的那样,将条目分解为两个部分,并将它们命名为lc。以上代码相当于:

val myValues = inputMap.map { ValueDescription(it.key, it.value) }

相关内容

  • 没有找到相关文章

最新更新