ursus
07/30/2018, 8:24 PMval maxSize = BookDao.RECENTS_SIZE
val all = mutableListOf<RealmObject>()
all.addAll(it.findAllRecentSearchedBooks().run { if (this.size > maxSize) subList(0, maxSize) else this })
all.addAll(it.findAllRecentSearchedAuthors().run { if (this.size > maxSize) subList(0, maxSize) else this })
all.sortByDescending {
when (it) {
is RecentlySearchedBook -> it.timestamp
is RecentlySearchedAuthor -> it.timestamp
else -> error("Unknown type")
}
}
val allUnmamaged = mutableListOf<SearchItem>()
for (i in 0 until Math.min(all.size, maxSize)) {
allUnmamaged.add(it.unmanaged(all[i]) as SearchItem)
}
allUnmamaged
diesieben07
07/30/2018, 8:27 PMval all = it.findAllRecentSearchedBooks().take(maxSize) + it.findAllRecentSearchedAuthors.take(maxSize)
.sortedByDecending {...}
For a start.diesieben07
07/30/2018, 8:28 PMval allUnmanaged = all.map { item -> it.unmanaged(item) as SearchItem }
ursus
07/30/2018, 8:30 PMursus
07/30/2018, 8:30 PMdiesieben07
07/30/2018, 8:30 PMsorted
returns sorted copy, sort
sorts in placeursus
07/30/2018, 8:31 PMdiesieben07
07/30/2018, 8:32 PMursus
07/30/2018, 8:32 PMdiesieben07
07/30/2018, 8:32 PMdiesieben07
07/30/2018, 8:32 PMdiesieben07
07/30/2018, 8:32 PMursus
07/30/2018, 8:32 PMdiesieben07
07/30/2018, 8:32 PMdiesieben07
07/30/2018, 8:33 PMmap
twice with a sequence, your collection is only traversed onceursus
07/30/2018, 8:33 PMdiesieben07
07/30/2018, 8:34 PMList
and you call map
on it, a new List
of the same length will be allocated and the result will be stored in it.diesieben07
07/30/2018, 8:34 PMdiesieben07
07/30/2018, 8:35 PMursus
07/30/2018, 8:35 PMdiesieben07
07/30/2018, 8:35 PMdiesieben07
07/30/2018, 8:35 PMursus
07/30/2018, 8:35 PMdiesieben07
07/30/2018, 8:36 PMursus
07/30/2018, 8:36 PMursus
07/30/2018, 8:36 PMdiesieben07
07/30/2018, 8:37 PMdiesieben07
07/30/2018, 8:37 PMdiesieben07
07/30/2018, 8:37 PMursus
07/30/2018, 8:37 PM