Skip to content

Instantly share code, notes, and snippets.

View david-bakin's full-sized avatar

David Bakin david-bakin

View GitHub Profile
@david-bakin
david-bakin / UsingStreamCollectOrCollector.java
Last active August 10, 2023 12:21
How to use Java 8 Stream::collect() to find the longest sequential subsequence in a stream
package com.bakins_bits;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
@david-bakin
david-bakin / Result.java
Created November 11, 2015 05:03
Java Result class - union (sum) type of a success type and a failure type, with a "pattern matching" functional interface
package com.bakins_bits.types;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import com.google.common.base.Preconditions;
@david-bakin
david-bakin / Either.java
Created November 7, 2015 03:40
Either type for Java
package com.bakins_bits.types;
import java.util.function.Consumer;
import java.util.function.Function;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import com.google.common.base.Preconditions;
@david-bakin
david-bakin / jackson-jsr-310-instant-issues.java
Last active October 22, 2015 21:48
Illustrates two problems with Jackson :jackson-datatype-jsr310 v2.6.2 when dealing with java.time.Instant.
package com.bakins_bits;
import static net.javacrumbs.jsonunit.fluent.JsonFluentAssert.assertThatJson;
import static org.assertj.core.api.StrictAssertions.assertThat;
import static org.assertj.core.api.StrictAssertions.fail;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.Instant;