Class Ints


  • @GwtCompatible(emulated=true)
    public final class Ints
    extends 
    Static utility methods pertaining to int primitives, that are not already found in either or .

    See the Guava User Guide article on .

    Since:
    1.0
    Author:
    Kevin Bourrillion
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int BYTES
      The number of bytes required to represent a primitive int value.
      static int MAX_POWER_OF_TWO
      The largest power of two that can be represented as an int.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <> asList​(int... backingArray)
      Returns a fixed-size list backed by the specified array, similar to .
      static int checkedCast​(long value)
      Returns the int value that is equal to value, if possible.
      static int compare​(int a, int b)
      Compares the two specified int values.
      static int[] concat​(int[]... arrays)
      Returns the values from each provided array combined into a single array.
      static int constrainToRange​(int value, int min, int max)
      Returns the value nearest to value which is within the closed range [min..max].
      static boolean contains​(int[] array, int target)
      Returns true if target is present as an element anywhere in array.
      static int[] ensureCapacity​(int[] 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 fromByteArray​(byte[] bytes)
      Returns the int value whose big-endian representation is stored in the first 4 bytes of bytes; equivalent to ByteBuffer.wrap(bytes).getInt().
      static int fromBytes​(byte b1, byte b2, byte b3, byte b4)
      Returns the int value whose byte representation is the given 4 bytes, in big-endian order; equivalent to Ints.fromByteArray(new byte[] {b1, b2, b3, b4}).
      static int hashCode​(int value)
      Returns a hash code for value; equal to the result of invoking ((Integer) value).hashCode().
      static int indexOf​(int[] array, int target)
      Returns the index of the first appearance of the value target in array.
      static int indexOf​(int[] array, int[] target)
      Returns the start position of the first occurrence of the specified target within array, or -1 if there is no such occurrence.
      static  separator, int... array)
      Returns a string containing the supplied int values separated by separator.
      static int lastIndexOf​(int[] array, int target)
      Returns the index of the last appearance of the value target in array.
      static <int[]> lexicographicalComparator()
      Returns a comparator that compares two int arrays .
      static int max​(int... array)
      Returns the greatest value present in array.
      static int min​(int... array)
      Returns the least value present in array.
      static void reverse​(int[] array)
      Reverses the elements of array.
      static void reverse​(int[] array, int fromIndex, int toIndex)
      Reverses the elements of array between fromIndex inclusive and toIndex exclusive.
      static int saturatedCast​(long value)
      Returns the int nearest in value to value.
      static void sortDescending​(int[] array)
      Sorts the elements of array in descending order.
      static void sortDescending​(int[] array, int fromIndex, int toIndex)
      Sorts the elements of array between fromIndex inclusive and toIndex exclusive in descending order.
      static ,​> stringConverter()
      Returns a serializable converter object that converts between strings and integers using and .
      static int[] <? extends > collection)
      Returns an array containing each value of collection, converted to a int value in the manner of .
      static byte[] toByteArray​(int value)
      Returns a big-endian representation of value in a 4-element byte array; equivalent to ByteBuffer.allocate(4).putInt(value).array().
      static  string)
      Parses the specified string as a signed decimal integer value.
      static  string, int radix)
      Parses the specified string as a signed integer value using the specified radix.
      • Methods inherited from class java.lang.

        , , , , , , , , , ,
    • Field Detail

      • BYTES

        public static final int BYTES
        The number of bytes required to represent a primitive int value.

        Java 8 users: use instead.

        See Also:
        Constant Field Values
    • Method Detail

      • hashCode

        public static int hashCode​(int value)
        Returns a hash code for value; equal to the result of invoking ((Integer) value).hashCode().

        Java 8 users: use instead.

        Parameters:
        value - a primitive int value
        Returns:
        a hash code for the value
      • checkedCast

        public static int checkedCast​(long value)
        Returns the int value that is equal to value, if possible.
        Parameters:
        value - any value in the range of the int type
        Returns:
        the int value that equals value
        Throws:
        - if value is greater than or less than
      • saturatedCast

        public static int saturatedCast​(long value)
        Returns the int nearest in value to value.
        Parameters:
        value - any long value
        Returns:
        the same value cast to int if it is in the range of the int type, if it is too large, or if it is too small
      • compare

        public static int compare​(int a,
                                  int b)
        Compares the two specified int values. The sign of the value returned is the same as that of ((Integer) a).compareTo(b).

        Note for Java 7 and later: this method should be treated as deprecated; use the equivalent method instead.

        Parameters:
        a - the first int to compare
        b - the second int to compare
        Returns:
        a negative value if a is less than b; a positive value if a is greater than b; or zero if they are equal
      • contains

        public static boolean contains​(int[] array,
                                       int target)
        Returns true if target is present as an element anywhere in array.
        Parameters:
        array - an array of int values, possibly empty
        target - a primitive int value
        Returns:
        true if array[i] == target for some value of i
      • indexOf

        public static int indexOf​(int[] array,
                                  int target)
        Returns the index of the first appearance of the value target in array.
        Parameters:
        array - an array of int values, possibly empty
        target - a primitive int value
        Returns:
        the least index i for which array[i] == target, or -1 if no such index exists.
      • indexOf

        public static int indexOf​(int[] array,
                                  int[] target)
        Returns the start position of the first occurrence of the specified 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.

        Parameters:
        array - the array to search for the sequence target
        target - the array to search for as a sub-sequence of array
      • lastIndexOf

        public static int lastIndexOf​(int[] array,
                                      int target)
        Returns the index of the last appearance of the value target in array.
        Parameters:
        array - an array of int values, possibly empty
        target - a primitive int value
        Returns:
        the greatest index i for which array[i] == target, or -1 if no such index exists.
      • min

        @GwtIncompatible("Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.")
        public static int min​(int... array)
        Returns the least value present in array.
        Parameters:
        array - a nonempty array of int values
        Returns:
        the value present in array that is less than or equal to every other value in the array
        Throws:
        - if array is empty
      • max

        @GwtIncompatible("Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.")
        public static int max​(int... array)
        Returns the greatest value present in array.
        Parameters:
        array - a nonempty array of int values
        Returns:
        the value present in array that is greater than or equal to every other value in the array
        Throws:
        - if array is empty
      • constrainToRange

        @Beta
        public static int constrainToRange​(int value,
                                           int min,
                                           int max)
        Returns the value nearest to 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.

        Parameters:
        value - the int value to constrain
        min - the lower bound (inclusive) of the range to constrain value to
        max - the upper bound (inclusive) of the range to constrain value to
        Throws:
        - if min > max
        Since:
        21.0
      • concat

        public static int[] concat​(int[]... arrays)
        Returns the values from each provided array combined into a single array. For example, concat(new int[] {a, b}, new int[] {}, new int[] {c} returns the array {a, b, c}.
        Parameters:
        arrays - zero or more int arrays
        Returns:
        a single array containing all the values from the source arrays, in order
      • toByteArray

        public static byte[] toByteArray​(int value)
        Returns a big-endian representation of value in a 4-element byte array; equivalent to ByteBuffer.allocate(4).putInt(value).array(). For example, the input value 0x12131415 would yield the byte array {0x12, 0x13, 0x14, 0x15}.

        If you need to convert and concatenate several values (possibly even of different types), use a shared instance, or use ByteStreams.newDataOutput() to get a growable buffer.

      • fromByteArray

        public static int fromByteArray​(byte[] bytes)
        Returns the int value whose big-endian representation is stored in the first 4 bytes of bytes; equivalent to ByteBuffer.wrap(bytes).getInt(). For example, the input byte array {0x12, 0x13, 0x14, 0x15, 0x33} would yield the int value 0x12131415.

        Arguably, it's preferable to use ; that library exposes much more flexibility at little cost in readability.

        Throws:
        - if bytes has fewer than 4 elements
      • fromBytes

        public static int fromBytes​(byte b1,
                                    byte b2,
                                    byte b3,
                                    byte b4)
        Returns the int value whose byte representation is the given 4 bytes, in big-endian order; equivalent to Ints.fromByteArray(new byte[] {b1, b2, b3, b4}).
        Since:
        7.0
      • stringConverter

        @Beta
        public static ,​> stringConverter()
        Returns a serializable converter object that converts between strings and integers using and . The returned converter throws if the input string is invalid.

        Warning: please see to understand exactly how strings are parsed. For example, the string "0123" is treated as octal and converted to the value 83.

        Since:
        16.0
      • ensureCapacity

        public static int[] ensureCapacity​(int[] array,
                                           int minLength,
                                           int padding)
        Returns an array containing the same values as 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.
        Parameters:
        array - the source array
        minLength - the minimum length the returned array must guarantee
        padding - an extra amount to "grow" the array by if growth is necessary
        Returns:
        an array containing the values of array, with guaranteed minimum length minLength
        Throws:
        - if minLength or padding is negative
      • join

        public static   separator,
                                  int... array)
        Returns a string containing the supplied int values separated by separator. For example, join("-", 1, 2, 3) returns the string "1-2-3".
        Parameters:
        separator - the text that should appear between consecutive values in the resulting string (but not at the start or end)
        array - an array of int values, possibly empty
      • lexicographicalComparator

        public static <int[]> lexicographicalComparator()
        Returns a comparator that compares two int arrays . That is, it compares, using compare(int, int)), 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] < [1, 2] < [2].

        The returned comparator is inconsistent with (since arrays support only identity equality), but it is consistent with .

        Since:
        2.0
      • sortDescending

        public static void sortDescending​(int[] array)
        Sorts the elements of array in descending order.
        Since:
        23.1
      • sortDescending

        public static void sortDescending​(int[] array,
                                          int fromIndex,
                                          int toIndex)
        Sorts the elements of array between fromIndex inclusive and toIndex exclusive in descending order.
        Since:
        23.1
      • reverse

        public static void reverse​(int[] array)
        Reverses the elements of array. This is equivalent to Collections.reverse(Ints.asList(array)), but is likely to be more efficient.
        Since:
        23.1
      • reverse

        public static void reverse​(int[] array,
                                   int fromIndex,
                                   int toIndex)
        Reverses the elements of array between fromIndex inclusive and toIndex exclusive. This is equivalent to Collections.reverse(Ints.asList(array).subList(fromIndex, toIndex)), but is likely to be more efficient.
        Throws:
        - if fromIndex < 0, toIndex > array.length, or toIndex > fromIndex
        Since:
        23.1
      • toArray

        public static int[] <? extends > collection)
        Returns an array containing each value of collection, converted to a int value in the manner of .

        Elements are copied from the argument collection as if by collection.toArray(). Calling this method is as thread-safe as calling that method.

        Parameters:
        collection - a collection of Number instances
        Returns:
        an array containing the same values as collection, in the same order, converted to primitives
        Throws:
        - if collection or any of its elements is null
        Since:
        1.0 (parameter was Collection<Integer> before 12.0)
      • asList

        public static <> asList​(int... backingArray)
        Returns a fixed-size list backed by the specified array, similar to . The list supports , but any attempt to set a value to null will result in a .

        The returned list maintains the values, but not the identities, of Integer objects written to or read from it. For example, whether list.get(0) == list.get(0) is true for the returned list is unspecified.

        Note: when possible, you should represent your data as an ImmutableIntArray instead, which has an asList view.

        Parameters:
        backingArray - the array to back the list
        Returns:
        a list view of the array
      • tryParse

        @Beta
        public static    string)
        Parses the specified string as a signed decimal integer value. The ASCII character '-' ('\u002D') is recognized as the minus sign.

        Unlike , this method returns null instead of throwing an exception if parsing fails. Additionally, this method only accepts ASCII digits, and returns null if non-ASCII digits are present in the string.

        Note that strings prefixed with ASCII '+' are rejected, even under JDK 7, despite the change to for that version.

        Parameters:
        string - the string representation of an integer value
        Returns:
        the integer value represented by string, or null if string has a length of zero or cannot be parsed as an integer value
        Throws:
        - if string is null
        Since:
        11.0
      • tryParse

        @Beta
        public static    string,
                                                 int radix)
        Parses the specified string as a signed integer value using the specified radix. The ASCII character '-' ('\u002D') is recognized as the minus sign.

        Unlike , this method returns null instead of throwing an exception if parsing fails. Additionally, this method only accepts ASCII digits, and returns null if non-ASCII digits are present in the string.

        Note that strings prefixed with ASCII '+' are rejected, even under JDK 7, despite the change to for that version.

        Parameters:
        string - the string representation of an integer value
        radix - the radix to use when parsing
        Returns:
        the integer value represented by string using radix, or null if string has a length of zero or cannot be parsed as an integer value
        Throws:
        - if radix < Character.MIN_RADIX or radix > Character.MAX_RADIX
        - if string is null
        Since:
        19.0