Skip to content

Instantly share code, notes, and snippets.

@stuart-marks
stuart-marks / DynamicFiltering.java
Created April 8, 2014 00:12
Dynamic filtering using Java 8 streams.
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
import static java.util.stream.Collectors.*;
import static java.util.Comparator.*;
/**
* http://stackoverflow.com/questions/22845574/how-to-dynamically-do-filtering-in-java-8
*
import java.util.*;
public class EmptyFinalizer {
static class A {
protected void finalize() {
System.out.println(this + " was finalized");
}
}
static class B extends A {
@stuart-marks
stuart-marks / FizzBuzz.java
Created March 20, 2014 04:11
Yet another FizzBuzz, using Java 8 lambda and streams.
import java.util.function.IntFunction;
import java.util.stream.IntStream;
public class FizzBuzz {
static <R> IntFunction<R> ifmod(int m, R r, IntFunction<R> f) {
return (int i) -> (i % m == 0) ? r : f.apply(i);
}
public static void main(String[] args) {
IntStream.rangeClosed(1, 100)
@stuart-marks
stuart-marks / ReadFileJavaApplicationBufferedReader7.java
Last active May 3, 2021 10:39
Processing Large Files in Java, Variation 7
package com.example.readFile.readFileJava;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
@stuart-marks
stuart-marks / SequenceTests.java
Last active March 8, 2021 21:25
Ken Fogel's collections benchmarks rewritten in JMH
package com.kenfogel.performance.loaders;
import java.util.*;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.*;
/**
* Performs a set of tests to determine the Big-O performance of an array list, array deque,
* and linked list.
*
// https://twitter.com/stuartmarks/status/1304654956146745344
import java.lang.reflect.Field;
public class StillAlive {
@SuppressWarnings("deprecation") // oh shut up
static Boolean truе = new Boolean(true);
static void WearMask() { }
static void Stay6ftApart() { }
@stuart-marks
stuart-marks / ReadFileJavaApplicationBufferedReader.diff56.java
Last active January 7, 2019 00:07
Processing Large Files in Java, Variation 6
--- ReadFileJavaApplicationBufferedReader5.java 2019-01-05 20:40:11.000000000 -0800
+++ ReadFileJavaApplicationBufferedReader6.java 2019-01-05 20:40:15.000000000 -0800
@@ -115,16 +115,9 @@
}
}
- LinkedList<Entry<String, Integer>> list = new LinkedList<>(map.entrySet());
+ Entry<String, Integer> common = Collections.max(map.entrySet(), Entry.comparingByValue());
- Collections.sort(list, new Comparator<Map.Entry<String, Integer> >() {
@stuart-marks
stuart-marks / ReadFileJavaApplicationBufferedReader.diff45.java
Last active January 7, 2019 00:06
Processing Large Files in Java, Variation 5
--- ReadFileJavaApplicationBufferedReader4.java 2019-01-05 20:40:05.000000000 -0800
+++ ReadFileJavaApplicationBufferedReader5.java 2019-01-05 20:40:11.000000000 -0800
@@ -46,6 +46,8 @@
ArrayList<String> firstNames = new ArrayList<>();
var namePat = Pattern.compile(", \\s*([^, ]+)");
+ char[] chars = new char[6];
+ StringBuilder sb = new StringBuilder(7);
System.out.println("Reading file using " + Caller.getName());
@stuart-marks
stuart-marks / ReadFileJavaApplicationBufferedReader.diff34.java
Last active January 7, 2019 00:06
Processing Large Files in Java, Variation 4
--- ReadFileJavaApplicationBufferedReader3.java 2019-01-05 20:40:01.000000000 -0800
+++ ReadFileJavaApplicationBufferedReader4.java 2019-01-05 20:40:05.000000000 -0800
@@ -45,7 +45,7 @@
Instant commonNameStart = Instant.now();
ArrayList<String> firstNames = new ArrayList<>();
- var namePat = Pattern.compile(", \\s*(([^ ]*), |([^ ]+))");
+ var namePat = Pattern.compile(", \\s*([^, ]+)");
System.out.println("Reading file using " + Caller.getName());
@stuart-marks
stuart-marks / ReadFileJavaApplicationBufferedReader.diff23.java
Last active January 7, 2019 00:06
Processing Large Files in Java, Variation 3
--- ReadFileJavaApplicationBufferedReader2.java
+++ ReadFileJavaApplicationBufferedReader3.java
@@ -44,6 +45,7 @@
Instant commonNameStart = Instant.now();
ArrayList<String> firstNames = new ArrayList<>();
+ var namePat = Pattern.compile(", \\s*(([^ ]*), |([^ ]+))");
System.out.println("Reading file using " + Caller.getName());