Tag: 集合

Kotlin和TornadoFX:将一个可观察的属性绑定到一个集合函数?

我有一个Market ,其中包含一个名为m_updates的MarketUpdate对象m_updates 。 对于UI,我使用类型安全的构建器在tableview中创建列,如下所示: override val root = tableview<Market> { val sortedMarketList = SortedList<Market>(markets) sortedMarketList.comparatorProperty().bind(this.comparatorProperty()) items = sortedMarketList … column("Strikes", Market::m_strikes) … m_strikes属性只是一个由Market对象直接拥有的SimpleIntegerProperty。 但是,我需要能够建立像这样的列: … column("Created At", Market::m_updates::first::m_time) … … column("Last Update", Market::m_updates::last::m_time) … 其中m_time是由MarketUpdate对象拥有的SimpleLongProperty。 当Market对象更新时,新的MarketUpdate对象被添加到m_updates集合的末尾。 这意味着绑定需要自动从一个对象转换到另一个对象,并且需要通知tableview并更新自己以反映新对象中的数据。 我认为通过上述集合的first()和last()函数的绑定以一种非常简单的方式捕获了这个想法,但是它不会被编译。 有许多属性,如m_strikes和m_time 。 我怎样才能达到这个优雅?

如何通过元素的属性将集合转换/转换为另一个集合?

如果我在Kotlin中有一个对象的集合,是否有一个快速的方法来获得这些对象的某个属性的集合? 我查看了Kotlin的收集操作清单,但没有什么突出的(但我可能忽略了一些) 在Python中,它将类似于: [person.name for person in persons] 我宁愿使用一个集合函数而不是: var nameMap = mutableListOf<String>() persons.forEach{person -> nameMap.add(person.name)} 我很缺乏过滤/ lambda函数和列表理解以外的任何知识,所以如果这是一个简单的问题,请道歉

从列表中的每个对象中选择属性

假设我有一个List<Tuple> ,每个元素中的第一个元素是一个字符串。 在Kotlin中是否有一个扩展函数来从这些元组中选择第一个元素? 我正在寻找类似于C#LINQ语法的Select : myTuples.Select(t => t.item1)

find和firstOrNull有什么区别?

鉴于从Kotlin Koans提取的以下代码: fun Shop.findAnyCustomerFrom(city: City): Customer? { // Return a customer who lives in the given city, or null if there is none return customers.firstOrNull { it.isFrom(city) } } 我自己的解决方案使用customers.find 。 两者都在公案情况下工作。 firstOrNull和find的文档似乎非常相似。 这两个功能有什么区别?

HashMap(它)会做什么?

我正在学习有关“Android开发人员的Kotlin”示例代码https://github.com/antoniolg/Kotlin-for-Android-Developers 在代码.parseList { DayForecast(HashMap(it)) } ,我不明白什么函数HashMap(它)会做。 HashMap()是一个类,接受一个parmater吗? 而且,我认为DayForecast(…)..类的完整代码是代码A,对不对? 再次,如果我创建一个对象var myDayForecast=DayForecast(10L,"Desciption",10,5,"http://www.a.com",10L) ,myDayForecast.map将是空的,对吗? 代码A class DayForecast(var map: MutableMap<String, Any?>) { var _id: Long by map var date: Long by map var description: String by map var high: Int by map var low: Int by map var iconUrl: String by map var cityId: Long by map constructor(date: Long, […]

如何在Kotlin中使用foldRight递归实现dropWhile

我一直在使用.foldRight()递归地实现高阶函数,就像实践一样,但是却一直难以实现。 _Collections.kt有迫切的方法,但我不能将其转换为递归结构。 作为参考,这是takeWhile fun takeWhile(list:List<Int>, func:(Int) -> Boolean):List<Int> = list.foldRight(emptyList(), { next:Int, acc:List<Int> -> if (func(next)) acc.plus(next) else emptyList() })

Kotlin:大量的ConsPStack,我该如何避免?

我如何避免由我的应用程序创建的大量ConsPStack ? 什么时候创建? 我的申请: https : //github.com/Jire/Abendigo

如何在Kotlin集合中创建UpdateOrInsert

我有一个项目列表,其中一个项目副本是由用户更改,我如何找到它在我的收集由Id和更新,或者如果它没有找到我想添加项目? 我最好的猜测是,但它需要丑陋的指标(五) fun updateOrInsert(note : UserNote) { val list = notes.value!! val v = list.firstOrNull{(Id) -> Id ==note.Id} if (v==null) { list.add(note) } else { val i = list.indexOf(v) list[i] = note } notes.value = list }

如何通过一个kotlin集合作为varagrs?

乍一看,它只需要将集合转换为数组并将其传递给方法,但这不起作用: val toTypedArray = Arrays.asList("a", "b").toTypedArray() Paths.get("", toTypedArray) // <- compilation error here 没有解决方法?

Kotlin中的takeWhile()和filter()方法之间的区别

我正在做一个练习,我发现我可以使用takeWhile()和filter()方法得到相同的结果,所以我想知道什么时候我必须使用一个或另一个。 谢谢你,任何你想与我分享的来源将受到欢迎。