[Kotlin] mutableList with toList

List is not mutable, when you want to add data into list, you can do is:

"adding data to a mutableList", then return a immutable list by calling toList() function

 private val hiddenSeats = mutableListOf<Seat>()
 val seats
 get() = hiddenSeats.toList()

 

Example Code:

复制代码
import java.math.BigDecimal

data class Seat(val row: Int, val num: Int, val price: BigDecimal, val description: String) {
    override fun toString(): String = "Seat $row-$num $price ($description)"
}

class Theater {
    private val hiddenSeats = mutableListOf<Seat>()

    constructor() {

        fun getPrice(row: Int, num: Int): BigDecimal {
            return when {
                row >=14 -> BigDecimal(14.50)
                num <=3 || num >= 34 -> BigDecimal(16.50)
                row == 1 -> BigDecimal(21)
                else -> BigDecimal(18)
            }
        }

        fun getDescription(row: Int, num: Int): String {
            return when {
                row == 15 -> "Back row"
                row == 14 -> "Cheaper seat"
                num < 3 || num >=34 -> "Restricted view"
                row <= 2 -> "Best view"
                else -> "Standard view"
            }
        }

        for (row in 1..15) {
            for (num in  1..36) {
                hiddenSeats.add(Seat(row, num, getPrice(row, num), getDescription(row, num)))
            }
        }
    }

    val seats
    get() = hiddenSeats.toList()
}

fun main(args: Array<String>) {
    val cheapSeats = Theater().seats.filter {it.price == BigDecimal(14.50)}
    for (seat in cheapSeats) println(seat)
}
复制代码

 

posted @   Zhentiw  阅读(371)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-10-30 [React] Use React.memo with a Function Component to get PureComponent Behavior
2018-10-30 [Javascript] Use a custom sort function on an Array in Javascript
2017-10-30 [Anuglar & NgRx] StoreRouterConnectingModule
2017-10-30 [Unit testing] data-test attr FTW
2016-10-30 [Angular2 Form] Validation message for Reactive form
2016-10-30 [Angular2 Form] Check password match
2016-10-30 [Angular2 Form] patchValue, setValue and reset() for Form
点击右上角即可分享
微信分享提示