有没有办法在 Kotlin 中使用初始化函数构造 HashSet?

2023-12-26

从文件中读取星星2016 年 Facebook 黑客杯 https://www.facebook.com/hackercup/problem/910374079035613/Boomerang Constellations问题,可以定义以下扩展函数:

fun BufferedReader.readStars(n: Int): Set<Star> {
    return Array(n) {
        val (l1, l2) = readLine().split(" ").map { it.toInt() }
        Star(l1, l2)
    }.toHashSet()
}

代码很紧凑,但值首先读入数组,然后转换为HashSet。有没有办法直接初始化HashSet大小为nKotlin 中的初始化函数?

UPDATE:有没有一个existing标准 Kotlin 库中的方式?


您可以随时使用apply就地初始化对象:

HashSet<Star>(n).apply {
    repeat(n) {
        val (l1, l2) = readLine()!!.split(' ').map { it.toInt() }
        put(Star(l1, l2))
    }
}

如果每次都输入太不方便,可以写一个扩展函数:

inline fun <T> createHashSet(n : Int, crossinline fn: (Int) -> T) = HashSet<T>(n).apply {
    repeat(n) { add(fn(it)) }
}

Usage:

createHashSet<Star>(n) {
    val (l1, l2) = readLine()!!.split(' ').map { it.toInt() }
    Star(l1, l2)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在 Kotlin 中使用初始化函数构造 HashSet? 的相关文章

随机推荐

  • 使用正则表达式通过php过滤xpath中的属性

    我正在尝试使用与其 id 属性匹配的正则表达式来过滤 html 表 我究竟做错了什么 我正在尝试实现的代码 this gt xpath new DOMXPath this gt dom this gt xpath gt registerNa
  • JavaScript 中的日期格式转换

    我想知道转换这种格式的时间戳的最佳方法是什么 2012 02 18 14 28 32 到此格式的日期演示 Saturday Feb 2012 14 28 32 非常感谢 Javascript 日期函数非常糟糕 您可以选择转换为 UTChtt
  • 想要添加图像的div左上角

  • case类中的var成员会影响case类的相等性吗?

    我在代码中大量使用了案例类 响应案例类的底层相等定义以确保行为正确 然后现在我发现我需要向案例类添加另一个字段成员 所以如果我添加一个var案例类中的字段成员 是否会弄乱案例类的相等属性 如果 1 是 那么如果我只改变var字段值一次 之后
  • 图例中的分数,多种颜色

    I need to create a complex legend which includes a fraction and the numerator and denominator are in different colors 是否
  • Jquery 可克隆输入 foreach 覆盖值

    我目前正在创建一个可克隆的 id 输入字段 唯一的问题是在验证 id 后提交时 它会在控制台中为所有重复项显示相同的值 我想要实现的只是克隆字段 使其通过验证并在提交时返回 JSON 中每个克隆字段的值 非常感谢任何帮助 杰斯小提琴 htt
  • JSON - 简单获取整数而不是长整型

    如何获得Integer代替Long来自 JSON 我想在我的Java程序中读取JSON 但是当我得到一个数字的JSON值时 我的解析器返回一个数字类型Long 我想得到一个Integer 我试图将 long 转换为整数 但是 java 抛出
  • 结构化分析中的数据流程图的 UML 类似物是什么?

    早在黑暗时代 20世纪80年代中期 我用过数据流程图 http en wikipedia org wiki Data Flow Diagram from 结构化分析 http en wikipedia org wiki Structured
  • nvd3.js:无法将 onClick 事件与 svg 中的数据点绑定

    我试图将数据点与 onclick 事件绑定 以便我可以显示一个带有一些附加详细信息和链接的覆盖框 我正在使用 nv point类来访问数据点 问题是我无法将 onclick 事件注册到这些数据点 这是代码 d3 selectAll nv p
  • Cassandra .csv 导入错误:批量太大

    我正在尝试通过复制命令将数据从 csv 文件导入到 Cassandra 3 2 1 文件中只有 299 行 14 列 我收到错误 无法导入 299 行 InvalidRequest code 2200 无效查询 message 批次太大 我
  • 使用 javascript 更快地选择元素

    我想知道是否有更快的方法来选择它 document getElementById container getElementsByTagName p 0 getElementsByTagName strong 1 innerText 结构是
  • 从基类方法克隆派生类

    我有一个抽象基类Base它具有一些共同的属性 以及许多实现不同逻辑但很少有附加字段的派生属性 public abstract Base protected int field1 protected int field2 protected
  • 获取 x86-64 指令的大小

    我需要一个可以计算 x86 64 指令长度的函数 例如 它可以像这样使用 char ret 0xc3 size t length instructionLength ret length在此示例中将设置为 1 我不想包含整个反汇编库 因为我
  • 编译静态库与标准库的链接(静态)

    我正在尝试编译一个静态库 我们称之为library a 该库消耗标准库的资源 该库可以通过某种方式静态链接标准库 我已经证明了类似的事情 g c library static libstdc o library o ar rcs libra
  • 如何观察目录的变化? [复制]

    这个问题在这里已经有答案了 在 python 核心中找不到任何东西来执行此操作 谁能推荐一个库或 电池 来做到这一点 理想情况下 我希望它是可移植的 但如果它仅适用于 Unix 我的服务器 也没关系 在 Linux 上 您可能对 pyino
  • Reflection.Emit 与 CodeDOM

    使用 Reflection Emit 库与 CodeDOM 在运行时动态生成代码有哪些优缺点 我正在尝试根据运行时以 XML 形式提供的元数据在系统中生成一些 相对复杂的 动态类 我将生成扩展应用程序程序集中现有类的类 实现附加接口 添加方
  • 矢量绘图中的微光动画

    我一直在尝试使用动画矢量可绘制图标实现闪烁动画 我正在寻找的效果与此类似 我已经用过Facebook 微光库 https facebook github io shimmer android 为了获得这种效果 尽管这正是我所需要的 但我想使
  • Typescript Array[T] 接受 {..T} 作为有效类型

    使用时这咬了我useState
  • 检索 Sitecore 项目在内容树中的位置 A 以及位置 B 中的用户

    给定以下内容树 我如何将经销商与汽车关联起来 以便获得这样的 URL http website Dealerships JimWhite 福特 http website Dealerships JimWhite Ford 我需要能够在汽车下
  • 有没有办法在 Kotlin 中使用初始化函数构造 HashSet?

    从文件中读取星星2016 年 Facebook 黑客杯 https www facebook com hackercup problem 910374079035613 Boomerang Constellations问题 可以定义以下扩展