raulraja
02/26/2018, 7:31 PMmapIndexed
would look like if the lists were of different types.gildor
02/27/2018, 1:33 AMfun <A, B, C> List<A>.zip(b: List<B>, c: List<C>): List<Triple<A, B, C>> {
val length = min(this.size, min(b.size, c.size))
return List(length) {
Triple(this[it], b[it], c[it])
}
}
jw
02/27/2018, 1:33 AMjw
02/27/2018, 1:35 AMList(length, func)
!jw
02/27/2018, 1:35 AMrrva
02/27/2018, 4:23 PMdata class Person(val name: String, val citiesVisited: List<City>)
and City(val name: String, val population: Int)
how do I create a Map<City, List<Person>>
with groupBy
or similar?rrva
02/27/2018, 4:24 PMList<Person>
karelpeeters
02/27/2018, 5:10 PMlist.flatMap { person -> it.citiesVisited.map { city -> city to person } }.groupBy { it.first }.mapValues { _, v -> v.map(Pair::second) }
karelpeeters
02/27/2018, 5:10 PMrrva
02/28/2018, 9:02 AMmarcinmoskala
02/28/2018, 2:53 PMkarelpeeters
02/28/2018, 2:57 PMdiego-gomez-olvera
03/01/2018, 10:44 AMdiego-gomez-olvera
03/01/2018, 10:45 AMkarelpeeters
03/01/2018, 10:46 AMdiego-gomez-olvera
03/01/2018, 10:48 AM@Nonnull
public static <T> Iterable<T> reverseIteration(List<T> list) {
if (list.isEmpty()) {
return Collections.emptyList();
}
return () -> new Iterator<T>() {
@Nonnull
ListIterator<T> innerIterator = list.listIterator(list.size());
@Override
public boolean hasNext() {
return innerIterator.hasPrevious();
}
@Override
public T next() {
return innerIterator.previous();
}
@Override
public void remove() {
innerIterator.remove();
}
};
}
Can be replaced by CollectionsKt.asReversed(list)
diego-gomez-olvera
03/01/2018, 10:50 AMFilesKt.readText(new File(fileName), Charset.forName("UTF-8"));
diego-gomez-olvera
03/01/2018, 10:51 AMcbruegg
03/01/2018, 10:51 AMgildor
03/02/2018, 2:12 AMjw
03/02/2018, 2:16 AMjw
03/02/2018, 2:17 AMasad.awadia
03/06/2018, 11:42 PMpublic inline fun maxOf(a: Int, b: Int): Int {
return Math.max(a, b)
}
are these slower than just calling Math.max
directly? are these just syntactic sugar wrappers?kevinmost
03/06/2018, 11:43 PMinline
so no, your resulting bytecode is literally equivalent to if you had called Math.max
asad.awadia
03/06/2018, 11:46 PMasad.awadia
03/06/2018, 11:46 PMasad.awadia
03/06/2018, 11:48 PMprices.forEach {
maxProfit = maxOf(maxProfit, it - minPrice)
minPrice = minOf(minPrice, it)
}
took 420msasad.awadia
03/06/2018, 11:48 PMcbruegg
03/06/2018, 11:49 PMforEach
asad.awadia
03/06/2018, 11:49 PM