我正试图找出将我的排序映射到另一个函数的参数的最佳方法。这是我所拥有的一个例子。
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.key
和it.value
,您还可以使用括号,就像我在这里对(l, c)
所做的那样,将条目分解为两个部分,并将它们命名为l
和c
。以上代码相当于:
val myValues = inputMap.map { ValueDescription(it.key, it.value) }