// onjava/FillMap.java // (c)2016 MindView LLC: see Copyright.txt // We make no guarantees that this code is fit for any purpose. // Visit http://mindviewinc.com/Books/OnJava/ for more book information. package onjava; import java.util.*; import java.util.function.*; import java.util.stream.*; public class FillMap { public static Map basic(Supplier> pairGen, int size) { return Stream.generate(pairGen) .limit(size) .collect( Collectors.toMap(Pair::key, Pair::value)); } public static Map basic(Supplier keyGen, Supplier valueGen, int size) { return Stream.generate( () -> Pair.make(keyGen.get(), valueGen.get())) .limit(size) .collect( Collectors.toMap(Pair::key, Pair::value)); } public static > M create(Supplier keyGen, Supplier valueGen, Supplier mapSupplier, int size) { return Stream.generate( () -> Pair.make(keyGen.get(), valueGen.get())) .limit(size) .collect( Collectors.toMap(Pair::key, Pair::value, (k, v) -> k, mapSupplier)); } }