我如何使这不重复相同的事情

我需要这个打印每个航class的一些“#”,但重复它,我不能修复它。 这是目前的产出:

TP23 ##############################

TP23 #########

TP1971 ############

VN453 #####

TP23 ##############################

TP23 #########

TP1971 ############

TP23 ##############################

TP23 #########

VN453 #####

TP1971 ############

这是预期的输出:

TP23 ##############################

TP23 #########

TP1971 ############

VN453 #####

fun mapReservas(reservas: List): Map<Pair, List> { val map = mutableMapOf<Pair, MutableList>() 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) { 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() } } } } 

我想你正在循环reserves 你创建的地图。 放下for循环,它应该只打印地图的内容。

 fun analiseEconomica(reserves: List) { val map = mapReserves(reserves) map.forEach { // Same logic here } } 

通过额外的for循环,你说你想要在map上打印每个Reserves对象的每个值,这就是为什么你会得到这么多的重复。

仅供参考,有更多的惯用方法来做你正在做的事情,但为了直接回答你的问题,我将离开它在这个。