T - The type of generated objects. Primitive objects (e.g. int, boolean etc.) are represented by their boxed
            type (e.g. Integer, Boolean).public interface Arbitrary<T>
| Modifier and Type | Method and Description | 
|---|---|
| default <A> SizableArbitrary<A> | array(java.lang.Class<A> arrayClass)Create a new arbitrary of type  T[]using the existing arbitrary for generating the elements of the array. | 
| default java.util.Optional<ExhaustiveGenerator<T>> | exhaustive()Create the exhaustive generator for an arbitrary | 
| default Arbitrary<T> | filter(java.util.function.Predicate<T> filterPredicate)Create a new arbitrary of the same type  Tthat creates and shrinks the original arbitrary but only allows
 values that are accepted by thefilterPredicate. | 
| default Arbitrary<T> | fixGenSize(int genSize)Fix the genSize of an arbitrary so that it can no longer be influenced from outside | 
| default <U> Arbitrary<U> | flatMap(java.util.function.Function<T,Arbitrary<U>> mapper)Create a new arbitrary of type  Uthat uses the values of the existing arbitrary to create a new arbitrary
 using themapperfunction. | 
| RandomGenerator<T> | generator(int genSize)Create the random generator for an arbitrary | 
| default Arbitrary<T> | injectNull(double nullProbability)Create a new arbitrary of the same type but inject null values with a probability of  nullProbability. | 
| default SizableArbitrary<java.util.Iterator<T>> | iterator()Create a new arbitrary of type  Iterable<T>using the existing arbitrary for generating the elements of the
 stream. | 
| default SizableArbitrary<java.util.List<T>> | list()Create a new arbitrary of type  List<T>using the existing arbitrary for generating the elements of the list. | 
| default <U> Arbitrary<U> | map(java.util.function.Function<T,U> mapper)Create a new arbitrary of type  Uthat maps the values of the original arbitrary using themapperfunction. | 
| default Arbitrary<java.util.Optional<T>> | optional()Create a new arbitrary of type  Optional<T>using the existing arbitrary for generating the elements of the
 stream. | 
| default SizableArbitrary<java.util.Set<T>> | set()Create a new arbitrary of type  Set<T>using the existing arbitrary for generating the elements of the set. | 
| default SizableArbitrary<java.util.stream.Stream<T>> | stream()Create a new arbitrary of type  Stream<T>using the existing arbitrary for generating the elements of the
 stream. | 
| default Arbitrary<T> | unique()Create a new arbitrary of the same type  Tthat creates and shrinks the original arbitrary but will
 never generate the same value twice. | 
| default Arbitrary<T> | withSamples(T... samples)Create a new arbitrary of the same type but inject values in  samplesfirst before continuing with standard
 value generation. | 
RandomGenerator<T> generator(int genSize)
genSize - a very unspecific configuration parameter that can be used
                to influence the configuration and behaviour of a random generator
                if and only if the generator wants to be influenced.
                Many generators are independent of genSize.
                The default value of genSize is the number of tries configured
                for a property. Use fixGenSize(int) to fix
                the parameter for a given arbitrary.default java.util.Optional<ExhaustiveGenerator<T>> exhaustive()
default Arbitrary<T> filter(java.util.function.Predicate<T> filterPredicate)
T that creates and shrinks the original arbitrary but only allows
 values that are accepted by the filterPredicate.JqwikException - if filtering will fail to come up with a value after 10000 triesdefault <U> Arbitrary<U> map(java.util.function.Function<T,U> mapper)
U that maps the values of the original arbitrary using the mapper
 function.default <U> Arbitrary<U> flatMap(java.util.function.Function<T,Arbitrary<U>> mapper)
U that uses the values of the existing arbitrary to create a new arbitrary
 using the mapper function.default Arbitrary<T> injectNull(double nullProbability)
nullProbability.default Arbitrary<T> unique()
T that creates and shrinks the original arbitrary but will
 never generate the same value twice.JqwikException - if filtering will fail to come up with a value after 10000 triesdefault Arbitrary<T> withSamples(T... samples)
samples first before continuing with standard
 value generation.default Arbitrary<T> fixGenSize(int genSize)
default SizableArbitrary<java.util.List<T>> list()
List<T> using the existing arbitrary for generating the elements of the list.default SizableArbitrary<java.util.Set<T>> set()
Set<T> using the existing arbitrary for generating the elements of the set.default SizableArbitrary<java.util.stream.Stream<T>> stream()
Stream<T> using the existing arbitrary for generating the elements of the
 stream.default SizableArbitrary<java.util.Iterator<T>> iterator()
Iterable<T> using the existing arbitrary for generating the elements of the
 stream.default <A> SizableArbitrary<A> array(java.lang.Class<A> arrayClass)
T[] using the existing arbitrary for generating the elements of the array.arrayClass - The arrays class to create, e.g. String[].class. This is required due to limitations in Java's
            reflection capabilities.