Skip to content

Instantly share code, notes, and snippets.

View kjkrol's full-sized avatar

Karol Król kjkrol

  • Viacom International Media Network
  • Warsaw, Poland
View GitHub Profile
@kjkrol
kjkrol / InnerJoin.kt
Created November 30, 2020 17:04
Inner Join
inline fun <T : Any, U : Any> Collection<T>.innerJoin(
with: Collection<U>,
on: (Pair<T, U>) -> Boolean
): Collection<Pair<T, U>> = map { t ->
val intersection = with.filter { on(Pair(t, it)) }
Pair(t, intersection)
}
.filter { pair -> pair.second.isNotEmpty() }
.flatMap { pair -> pair.second.map { Pair(pair.first, it) } }
@kjkrol
kjkrol / EmbeddedAMQPBroker.java
Last active April 12, 2018 15:28
EmbeddedAMQPBroker
package kjkrol.amqpbroker
import org.apache.qpid.server.SystemLauncher
import org.springframework.amqp.core.BindingBuilder
import org.springframework.amqp.core.TopicExchange
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory
import org.springframework.amqp.rabbit.core.RabbitAdmin
import org.springframework.amqp.rabbit.core.RabbitTemplate
class EmbeddedAMQPBroker {
@kjkrol
kjkrol / Permutation.java
Created September 3, 2015 19:31
Permutation algorithm for array of integers in Java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* @author Karol Krol
*/
@kjkrol
kjkrol / StreamZip.java
Last active March 1, 2022 11:52
Zipping streams using JDK8 with lambda
import java.util.Iterator;
import java.util.function.BiFunction;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
/**
* Zipping streams into parallel or sequential stream using JDK8 with lambda
*
* @author Karol Krol
*/