@GwtCompatible(emulated=true) public final class Floats extends Object
float
primitives, that are not already found in
either Float
or Arrays
.
See the Guava User Guide article on primitive utilities.
Modifier and Type | Field and Description |
---|---|
static int |
BYTES
The number of bytes required to represent a primitive
float value. |
Modifier and Type | Method and Description |
---|---|
static List<Float> |
asList(float... backingArray)
Returns a fixed-size list backed by the specified array, similar to
Arrays.asList(Object[]) . |
static int |
compare(float a,
float b)
Compares the two specified
float values using Float.compare(float, float) . |
static float[] |
concat(float[]... arrays)
Returns the values from each provided array combined into a single array.
|
static float |
constrainToRange(float value,
float min,
float max)
Returns the value nearest to
value which is within the closed range [min..max] . |
static boolean |
contains(float[] array,
float target)
Returns
true if target is present as an element anywhere in array . |
static float[] |
ensureCapacity(float[] array,
int minLength,
int padding)
Returns an array containing the same values as
array , but guaranteed to be of a
specified minimum length. |
static int |
hashCode(float value)
Returns a hash code for
value ; equal to the result of invoking ((Float)
value).hashCode() . |
static int |
indexOf(float[] array,
float target)
Returns the index of the first appearance of the value
target in array . |
static int |
indexOf(float[] array,
float[] target)
Returns the start position of the first occurrence of the specified
target within
array , or -1 if there is no such occurrence. |
static boolean |
isFinite(float value)
Returns
true if value represents a real number. |
static String |
join(String separator,
float... array)
Returns a string containing the supplied
float values, converted to strings as
specified by Float.toString(float) , and separated by separator . |
static int |
lastIndexOf(float[] array,
float target)
Returns the index of the last appearance of the value
target in array . |
static Comparator<float[]> |
lexicographicalComparator()
Returns a comparator that compares two
float arrays lexicographically. |
static float |
max(float... array)
Returns the greatest value present in
array , using the same rules of comparison as
Math.max(float, float) . |
static float |
min(float... array)
Returns the least value present in
array , using the same rules of comparison as Math.min(float, float) . |
static void |
reverse(float[] array)
Reverses the elements of
array . |
static void |
reverse(float[] array,
int fromIndex,
int toIndex)
Reverses the elements of
array between fromIndex inclusive and toIndex
exclusive. |
static void |
sortDescending(float[] array)
Sorts the elements of
array in descending order. |
static void |
sortDescending(float[] array,
int fromIndex,
int toIndex)
Sorts the elements of
array between fromIndex inclusive and toIndex
exclusive in descending order. |
static Converter<String,Float> |
stringConverter()
Returns a serializable converter object that converts between strings and floats using
Float.valueOf(java.lang.String) and Float.toString() . |
static float[] |
toArray(Collection<? extends Number> collection)
Returns an array containing each value of
collection , converted to a float
value in the manner of Number.floatValue() . |
static @Nullable Float |
tryParse(String string)
Parses the specified string as a single-precision floating point value.
|
public static final int BYTES
float
value.
Java 8 users: use Float.BYTES
instead.
public static int hashCode(float value)
value
; equal to the result of invoking ((Float)
value).hashCode()
.
Java 8 users: use Float.hashCode(float)
instead.
value
- a primitive float
valuepublic static int compare(float a, float b)
float
values using Float.compare(float, float)
. You
may prefer to invoke that method directly; this method exists only for consistency with the
other utilities in this package.
Note: this method simply delegates to the JDK method Float.compare(float, float)
. It is
provided for consistency with the other primitive types, whose compare methods were not added
to the JDK until JDK 7.
a
- the first float
to compareb
- the second float
to compareFloat.compare(float, float)
public static boolean isFinite(float value)
true
if value
represents a real number. This is equivalent to, but not
necessarily implemented as, !(Float.isInfinite(value) || Float.isNaN(value))
.
Java 8 users: use Float.isFinite(float)
instead.
public static boolean contains(float[] array, float target)
true
if target
is present as an element anywhere in array
. Note
that this always returns false
when target
is NaN
.array
- an array of float
values, possibly emptytarget
- a primitive float
valuetrue
if array[i] == target
for some value of i
public static int indexOf(float[] array, float target)
target
in array
. Note
that this always returns -1
when target
is NaN
.array
- an array of float
values, possibly emptytarget
- a primitive float
valuei
for which array[i] == target
, or -1
if no
such index exists.public static int indexOf(float[] array, float[] target)
target
within
array
, or -1
if there is no such occurrence.
More formally, returns the lowest index i
such that Arrays.copyOfRange(array,
i, i + target.length)
contains exactly the same elements as target
.
Note that this always returns -1
when target
contains NaN
.
array
- the array to search for the sequence target
target
- the array to search for as a sub-sequence of array
public static int lastIndexOf(float[] array, float target)
target
in array
. Note
that this always returns -1
when target
is NaN
.array
- an array of float
values, possibly emptytarget
- a primitive float
valuei
for which array[i] == target
, or -1
if no
such index exists.public static float min(float... array)
array
, using the same rules of comparison as Math.min(float, float)
.array
- a nonempty array of float
valuesarray
that is less than or equal to every other value in
the arrayIllegalArgumentException
- if array
is emptypublic static float max(float... array)
array
, using the same rules of comparison as
Math.max(float, float)
.array
- a nonempty array of float
valuesarray
that is greater than or equal to every other value
in the arrayIllegalArgumentException
- if array
is empty@Beta public static float constrainToRange(float value, float min, float max)
value
which is within the closed range [min..max]
.
If value
is within the range [min..max]
, value
is returned
unchanged. If value
is less than min
, min
is returned, and if value
is greater than max
, max
is returned.
value
- the float
value to constrainmin
- the lower bound (inclusive) of the range to constrain value
tomax
- the upper bound (inclusive) of the range to constrain value
toIllegalArgumentException
- if min > max
public static float[] concat(float[]... arrays)
concat(new float[] {a, b}, new float[] {}, new float[] {c}
returns the array {a, b,
c}
.arrays
- zero or more float
arrays@Beta public static Converter<String,Float> stringConverter()
Float.valueOf(java.lang.String)
and Float.toString()
.public static float[] ensureCapacity(float[] array, int minLength, int padding)
array
, but guaranteed to be of a
specified minimum length. If array
already has a length of at least minLength
,
it is returned directly. Otherwise, a new array of size minLength + padding
is
returned, containing the values of array
, and zeroes in the remaining places.array
- the source arrayminLength
- the minimum length the returned array must guaranteepadding
- an extra amount to "grow" the array by if growth is necessaryarray
, with guaranteed minimum length minLength
IllegalArgumentException
- if minLength
or padding
is negativepublic static String join(String separator, float... array)
float
values, converted to strings as
specified by Float.toString(float)
, and separated by separator
. For example,
join("-", 1.0f, 2.0f, 3.0f)
returns the string "1.0-2.0-3.0"
.
Note that Float.toString(float)
formats float
differently in GWT. In the
previous example, it returns the string "1-2-3"
.
separator
- the text that should appear between consecutive values in the resulting string
(but not at the start or end)array
- an array of float
values, possibly emptypublic static Comparator<float[]> lexicographicalComparator()
float
arrays lexicographically. That is, it
compares, using compare(float, float)
), the first pair of values that follow any
common prefix, or when one array is a prefix of the other, treats the shorter array as the
lesser. For example, [] < [1.0f] < [1.0f, 2.0f] < [2.0f]
.
The returned comparator is inconsistent with Object.equals(Object)
(since arrays
support only identity equality), but it is consistent with Arrays.equals(float[],
float[])
.
public static void sortDescending(float[] array)
array
in descending order.
Note that this method uses the total order imposed by Float.compare(float, float)
, which treats
all NaN values as equal and 0.0 as greater than -0.0.
public static void sortDescending(float[] array, int fromIndex, int toIndex)
array
between fromIndex
inclusive and toIndex
exclusive in descending order.
Note that this method uses the total order imposed by Float.compare(float, float)
, which treats
all NaN values as equal and 0.0 as greater than -0.0.
public static void reverse(float[] array)
array
. This is equivalent to Collections.reverse(Floats.asList(array))
, but is likely to be more efficient.public static void reverse(float[] array, int fromIndex, int toIndex)
array
between fromIndex
inclusive and toIndex
exclusive. This is equivalent to Collections.reverse(Floats.asList(array).subList(fromIndex, toIndex))
, but is likely to be
more efficient.IndexOutOfBoundsException
- if fromIndex < 0
, toIndex > array.length
, or
toIndex > fromIndex
public static float[] toArray(Collection<? extends Number> collection)
collection
, converted to a float
value in the manner of Number.floatValue()
.
Elements are copied from the argument collection as if by collection.toArray()
.
Calling this method is as thread-safe as calling that method.
collection
- a collection of Number
instancescollection
, in the same order, converted
to primitivesNullPointerException
- if collection
or any of its elements is nullCollection<Float>
before 12.0)public static List<Float> asList(float... backingArray)
Arrays.asList(Object[])
. The list supports List.set(int, Object)
, but any attempt to
set a value to null
will result in a NullPointerException
.
The returned list maintains the values, but not the identities, of Float
objects
written to or read from it. For example, whether list.get(0) == list.get(0)
is true for
the returned list is unspecified.
The returned list may have unexpected behavior if it contains NaN
, or if NaN
is used as a parameter to any of its methods.
backingArray
- the array to back the list@Beta @GwtIncompatible public static @Nullable Float tryParse(String string)
'-'
('\u002D'
) is recognized as the minus sign.
Unlike Float.parseFloat(String)
, this method returns null
instead of
throwing an exception if parsing fails. Valid inputs are exactly those accepted by Float.valueOf(String)
, except that leading and trailing whitespace is not permitted.
This implementation is likely to be faster than Float.parseFloat
if many failures
are expected.
string
- the string representation of a float
valuestring
, or null
if string
has a length of zero or cannot be parsed as a float
valueCopyright © 2010–2018. All rights reserved.