我需要这个为每个航班打印一些“#”但它重复它并且我无法解决它。 这是当前的输出:
TP23 ##############################
TP23 #########
TP1971 ############
VN453 #####
TP23 ##############################
TP23 #########
TP1971 ############
TP23 ##############################
TP23 #########
VN453 #####
TP1971 ############
这是预期的输出:
TP23 ##############################
TP23 #########
TP1971 ############
VN453 #####
fun mapReservas(reservas: List<Reservas>): Map<Pair<String, Int>, List<Reservas>> {
val map = mutableMapOf<Pair<String, Int>, MutableList<Reservas>>()
for (reserva in reservas) {
val key = reserva.numVoo to reserva.day
val list = map[key] ?: mutableListOf()
list.add(reserva)
map[key] = list
}
return map
}
fun analiseEconomica(reserves: List<Reserves>) {
val map = mapReserves(reserves)
for (reserve in reserves) {
map.forEach {
val reservesNum = it.key.first
val reservesDay = it.key.second
val reservesCount = it.value.count()
if (reservesNum == reserva.numFLight) {
val conversion : Double = reservasCount * 1.5
conversion!!.toInt()
var count = 0
val space = 10 - reservesNum.length
print("$reservesNum")
for (i in 0..space) {
print(" ")
}
while (count < conversion) {
print("#")
count++
}
println()
}
}
}
}
答案 0 :(得分:1)
我认为您正在循环reserves
和您创建的地图。删除for
循环,它应该只打印地图的内容。
fun analiseEconomica(reserves: List<Reserves>) {
val map = mapReserves(reserves)
map.forEach {
// Same logic here
}
}
通过使用额外的for循环,您表示要为列表中的每个map
对象打印Reserves
一次的每个值,这就是您获得的原因这么多重复。
仅供参考,有更多惯用的方式来做你正在做的事情,但为了直接回答你的问题,我将把它留在这里。