Clase Java.lang.Integer en Java

Clase Java.lang.Integer en Java

La clase Integer es una clase contenedora para el tipo primitivo int que contiene varios métodos para tratar eficazmente un valor int, como convertirlo en una representación de cadena, y viceversa. Un objeto de la clase Integer puede contener un único valor int.

Constructores:

  • Entero(int b): Crea un objeto Integer inicializado con el valor proporcionado.

Sintaxis:

public Integer(int b) 

Parámetros:

b : value with which to initialize 
  • Entero (cadena s): Crea un objeto Integer inicializado con el valor int proporcionado por la representación de cadena. La base predeterminada se considera 10.

Sintaxis:

public Integer(String s) throws NumberFormatException 

Parámetros:

s : string representation of the int value 

Lanza:

NumberFormatException : If the string provided does not represent any int value. 

Métodos:

1. toString() : Devuelve la cadena correspondiente al valor int.

Sintaxis:

public String toString(int b) 

Parámetros:

b : int value for which string representation required. 

2. aHexString() : Devuelve la cadena correspondiente al valor int en forma hexadecimal, es decir devuelve una cadena que representa el valor int en caracteres hexadecimales-[0-9][a-f]

Sintaxis:

public String toHexString(int b) 

Parámetros:

b : int value for which hex string representation required. 

3. aOctalString() : Devuelve la cadena correspondiente al valor int en forma octal, es decir devuelve una cadena que representa el valor int en caracteres octales-[0-7]

Sintaxis:

public String toOctalString(int b) 

Parámetros:

b : int value for which octal string representation required. 

4. toBinaryString() : Devuelve la cadena correspondiente al valor int en dígitos binarios, es decir devuelve una cadena que representa el valor int en caracteres hexadecimales-[0/1]

Sintaxis:

public String toBinaryString(int b) 

Parámetros:

b : int value for which binary string representation required. 

5. valor de() : devuelve el objeto Integer inicializado con el valor proporcionado.

Sintaxis:

public static Integer valueOf(int b) 

Parámetros:

b : a int value 
  • valor de (valor de cadena, base int) : Otra función sobrecargada que proporciona una función similar a new Integer(Integer.parseInteger(val,radix))

Sintaxis:

public static Integer valueOf(String val, int radix) throws NumberFormatException 

Parámetros:

val : String to be parsed into int value radix : radix to be used while parsing 

Lanza:

NumberFormatException : if String cannot be parsed to a int value in given radix. 
  • valor de (valor de cadena) : Otra función sobrecargada que proporciona una función similar a new Integer(Integer.parseInt(val,10))

Sintaxis:

public static Integer valueOf(String s) throws NumberFormatException 

Parámetros:

s : a String object to be parsed as int 

Lanza:

NumberFormatException : if String cannot be parsed to a int value in given radix. 

6. analizarInt() : devuelve un valor int analizando la cadena en la base proporcionada. Se diferencia de valueOf() ya que devuelve un valor int primitivo y valueOf() devuelve un objeto entero.

Sintaxis:

public static int parseInt(String val, int radix) throws NumberFormatException 

Parámetros:

val : String representation of int radix : radix to be used while parsing 

Lanza:

NumberFormatException : if String cannot be parsed to a int value in given radix. 
  • Otro método sobrecargado que contiene solo String como parámetro, radix está configurado de forma predeterminada en 10.

Sintaxis:

public static int parseInt(String val) throws NumberFormatException 

Parámetros:

val : String representation of int 

Lanza:

NumberFormatException : if String cannot be parsed to a int value in given radix. 

7. obtenerEntero(): devuelve el objeto entero que representa el valor asociado con la propiedad del sistema dada o nulo si no existe.

Sintaxis:

public static Integer getInteger(String prop) 

Parámetros:

prop : System property 
  • Otro método sobrecargado que devuelve el segundo argumento si la propiedad no existe, es decir, no devuelve nulo sino un valor predeterminado proporcionado por el usuario.

Sintaxis:

public static Integer getInteger(String prop, int val) 

Parámetros:

prop : System property val : value to return if property does not exist. 
  • Otro método sobrecargado que analiza el valor de acuerdo con el valor devuelto, es decir, si el valor devuelto comienza con #, se analiza como hexadecimal, si comienza con 0, se analiza como octal, en caso contrario, decimal.

Sintaxis:

public static Integer getInteger(String prop, Integer val) 

Parámetros:

prop : System property val : value to return if property does not exist. 

8. decodificar() : devuelve un objeto entero que contiene el valor decodificado de la cadena proporcionada. La cadena proporcionada debe tener el siguiente formato; de lo contrario, se generará NumberFormatException:
Decimal- (Signo)Número_decimal
Hex- (Signo) 0xHex_Digits
Hex- (Signo)0XHex_Digits
Octal- (Signo)0″Octal_Digits

Sintaxis:

public static Integer decode(String s) throws NumberFormatException 

Parámetros:

s : encoded string to be parsed into int val 

Lanza:

NumberFormatException : If the string cannot be decoded into a int value 

9. rotar a la izquierda() : Devuelve un int primitivo girando los bits a la izquierda una distancia dada en forma de complemento a dos del valor dado. Al girar hacia la izquierda, el bit más significativo se mueve hacia el lado derecho, o hacia la posición menos significativa, es decir, se produce un movimiento cíclico de los bits. La distancia negativa significa rotación hacia la derecha.

Sintaxis:

public static int rotateLeft(int val, int dist) 

Parámetros:

val : int value to be rotated dist : distance to rotate 

10. rotar a la derecha() : Devuelve un int primitivo girando los bits hacia la derecha una distancia dada en la forma de complemento a dos del valor dado. Cuando se gira hacia la derecha, el bit menos significativo se mueve hacia el lado izquierdo, o se produce la posición más significativa, es decir, se produce un movimiento cíclico de bits. La distancia negativa significa rotación hacia la izquierda.

Sintaxis:

public static int rotateRight(int val, int dist) 

Parámetros:

val : int value to be rotated dist : distance to rotate 

Java




// Java program to illustrate> // various Integer methods> public> class> Integer_test {> > public> static> void> main(String args[])> > {> > int> b => 55> ;> > String bb => '45'> ;> > // Construct two Integer objects> > Integer x => new> Integer(b);> > Integer y => new> Integer(bb);> > // toString()> > System.out.println(> 'toString(b) = '> > + Integer.toString(b));> > // toHexString(),toOctalString(),toBinaryString()> > // converts into hexadecimal, octal and binary> > // forms.> > System.out.println(> 'toHexString(b) ='> > + Integer.toHexString(b));> > System.out.println(> 'toOctalString(b) ='> > + Integer.toOctalString(b));> > System.out.println(> 'toBinaryString(b) ='> > + Integer.toBinaryString(b));> > // valueOf(): return Integer object> > // an overloaded method takes radix as well.> > Integer z = Integer.valueOf(b);> > System.out.println(> 'valueOf(b) = '> + z);> > z = Integer.valueOf(bb);> > System.out.println(> 'ValueOf(bb) = '> + z);> > z = Integer.valueOf(bb,> 6> );> > System.out.println(> 'ValueOf(bb,6) = '> + z);> > // parseInt(): return primitive int value> > // an overloaded method takes radix as well> > int> zz = Integer.parseInt(bb);> > System.out.println(> 'parseInt(bb) = '> + zz);> > zz = Integer.parseInt(bb,> 6> );> > System.out.println(> 'parseInt(bb,6) = '> + zz);> > // getInteger(): can be used to retrieve> > // int value of system property> > int> prop> > = Integer.getInteger(> 'sun.arch.data.model'> );> > System.out.println(> > 'getInteger(sun.arch.data.model) = '> + prop);> > System.out.println(> 'getInteger(abcd) ='> > + Integer.getInteger(> 'abcd'> ));> > // an overloaded getInteger() method> > // which return default value if property not found.> > System.out.println(> > 'getInteger(abcd,10) ='> > + Integer.getInteger(> 'abcd'> ,> 10> ));> > // decode() : decodes the hex,octal and decimal> > // string to corresponding int values.> > String decimal => '45'> ;> > String octal => '005'> ;> > String hex => '0x0f'> ;> > Integer dec = Integer.decode(decimal);> > System.out.println(> 'decode(45) = '> + dec);> > dec = Integer.decode(octal);> > System.out.println(> 'decode(005) = '> + dec);> > dec = Integer.decode(hex);> > System.out.println(> 'decode(0x0f) = '> + dec);> > // rotateLeft and rotateRight can be used> > // to rotate bits by specified distance> > int> valrot => 2> ;> > System.out.println(> > 'rotateLeft(0000 0000 0000 0010 , 2) ='> > + Integer.rotateLeft(valrot,> 2> ));> > System.out.println(> > 'rotateRight(0000 0000 0000 0010,3) ='> > + Integer.rotateRight(valrot,> 3> ));> > }> }>

Producción:

toString(b) = 55 toHexString(b) =37 toOctalString(b) =67 toBinaryString(b) =110111 valueOf(b) = 55 ValueOf(bb) = 45 ValueOf(bb,6) = 29 parseInt(bb) = 45 parseInt(bb,6) = 29 getInteger(sun.arch.data.model) = 64 getInteger(abcd) =null getInteger(abcd,10) =10 decode(45) = 45 decode(005) = 5 decode(0x0f) = 15 rotateLeft(0000 0000 0000 0010 , 2) =8 rotateRight(0000 0000 0000 0010,3) =1073741824 

11. valor de byte() : devuelve un valor de byte correspondiente a este objeto entero.

Sintaxis:

public byte byteValue() 

12. valor corto() : devuelve un valor corto correspondiente a este objeto entero.

Sintaxis:

public short shortValue() 

13. valorint() : devuelve un valor int correspondiente a este objeto entero.

Sintaxis:

public int intValue() 

13. valor largo() : devuelve un valor largo correspondiente a este objeto entero.

Sintaxis:

public long longValue() 

14. valor doble() : devuelve un valor doble correspondiente a este objeto entero.

Sintaxis:

public double doubleValue() 

15. valor flotante() : devuelve un valor flotante correspondiente a este objeto entero.

Sintaxis:

public float floatValue() 

16. código hash() : devuelve el código hash correspondiente a este objeto entero.

Sintaxis:

public int hashCode() 

17. recuento de bits() : Devuelve el número de bits establecidos en complemento a dos del número entero dado.

Sintaxis:

public static int bitCount(int i) 

Parámetros:

i : int value whose set bits to count 

18. númeroDeCerosLeading() : Devuelve el número de 0 bits que preceden al 1 bit más alto en forma de complemento a dos del valor, es decir, si el número en forma de complemento a dos es 0000 1010 0000 0000, entonces esta función devolvería 4.

Sintaxis:

public static int numberofLeadingZeroes(int i) 

Parámetros:

i : int value whose leading zeroes to count in twos complement form 

19. número de ceros finales() : Devuelve el número de 0 bits después del último bit en complemento a dos del valor, es decir, si el número en complemento a dos es 0000 1010 0000 0000, entonces esta función devolvería 9.

Sintaxis:

public static int numberofTrailingZeroes(int i) 

Parámetros:

i : int value whose trailing zeroes to count in twos complement form 

20. más altoUnBit() : Devuelve un valor con como máximo un bit, en la posición del bit más alto del valor dado. Devuelve 0 si el valor dado es 0, es decir, si el número es 0000 0000 0000 1111, entonces esta función devuelve 0000 0000 0000 1000 (uno en el bit más alto del número dado)

Sintaxis:

public static int highestOneBit(int i) 

Parámetros:

i : int value 

21. El bit más bajo() : Devuelve un valor con como máximo un bit, en la posición del bit más bajo del valor dado. Devuelve 0 si el valor dado es 0, es decir, si el número es 0000 0000 0000 1111, entonces esta función devuelve 0000 0000 0000 0001 (uno en el bit más alto del número dado)

Sintaxis:

public static int LowestOneBit(int i) 

Parámetros:

i : int value 

22. es igual() : Se utiliza para comparar la igualdad de dos objetos enteros. Este método devuelve verdadero si ambos objetos contienen el mismo valor int. Debe usarse solo si se verifica la igualdad. En todos los demás casos, se debe preferir el método compareTo.

Sintaxis:

public boolean equals(Object obj) 

Parámetros:

obj : object to compare with 

23. comparar con() : Se utiliza para comparar dos objetos enteros para determinar la igualdad numérica. Esto debe usarse al comparar dos valores enteros para la igualdad numérica, ya que diferenciaría entre valores mayores y menores. Devuelve un valor menor que 0,0, un valor mayor que 0 para menor, igual y mayor que.

Sintaxis:

public int compareTo(Integer b) 

Parámetros:

b : Integer object to compare with 

24. comparar() : Se utiliza para comparar dos valores int primitivos para la igualdad numérica. Como es un método estático, se puede utilizar sin crear ningún objeto de Integer.

Sintaxis:

public static int compare(int x,int y) 

Parámetros:

x : int value y : another int value 

25. firmar() : devuelve -1 para valores negativos, 0 para 0 y +1 para valores mayores que 0.

Sintaxis:

public static int signum(int val) 

Parámetros:

val : int value for which signum is required. 

26. revertir() : devuelve un valor int primitivo que invierte el orden de los bits en forma de complemento a dos del valor int dado.

Sintaxis:

public static int reverseBytes(int val) 

Parámetros:

val : int value whose bits to reverse in order. 

27. bytes inversos() : devuelve un valor int primitivo invirtiendo el orden de los bytes en forma de complemento a dos del valor int dado.

Sintaxis:

public static int reverseBytes(int val) 

Parámetros:

val : int value whose bits to reverse in order. 

28. estático int comparar sin firmar (int x, int y) : Este método compara dos valores int numéricamente y trata los valores como sin signo.

Sintaxis:

public static int compareUnsigned(int x, int y) 

29. static int divideUnsigned(int dividendo, int divisor) : Este método devuelve el cociente sin signo de dividir el primer argumento por el segundo, donde cada argumento y el resultado se interpretan como un valor sin signo.

Sintaxis:

public static int divideUnsigned(int dividend, int divisor) 

30. estático int máx (int a, int b) : Este método devuelve el mayor de dos valores int como si llamara a Math.max.

Sintaxis:

public static int max(int a, int b) 

31. estático int min(int a, int b) : Este método devuelve el menor de dos valores int como si llamara a Math.min.

Sintaxis:

public static int min(int a, int b) 

32. estático int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Este método analiza el argumento CharSequence como un int sin signo en la base especificada, comenzando en el beginIndex especificado y extendiéndose hasta endIndex – 1.

Sintaxis:

public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException 

33. estático int parseUnsignedInt (cadena s) : este método analiza el argumento de cadena como un entero decimal sin signo.

Sintaxis:

public static int parseUnsignedInt(String s) throws NumberFormatException 

34. static int parseUnsignedInt(String s, int radix) : este método analiza el argumento de cadena como un entero sin signo en la base especificada por el segundo argumento.

Sintaxis:

public static int parseUnsignedInt(String s, int radix) throws NumberFormatException 

35. resto estático int sin signo (dividendo int, divisor int) : Este método devuelve el resto sin signo de dividir el primer argumento por el segundo, donde cada argumento y el resultado se interpretan como un valor sin signo.

Sintaxis:

public static int remainderUnsigned(int dividend, int divisor) 

36. suma int estática (int a, int b) : Este método suma dos números enteros según el operador +.

Sintaxis:

public static int sum(int a, int b) 

37. static long toUnsignedLong(int x) : Este método convierte el argumento en largo mediante una conversión sin firmar.

Sintaxis:

public static long toUnsignedLong(int x) 

38. Cadena estática a cadena sin firmar (int i) : este método devuelve una representación de cadena del argumento como un valor decimal sin signo.

Sintaxis:

public static String toUnsignedString(int i, int radix) 

Java




// Java program to illustrate> // various Integer class methods> public> class> Integer_test {> > public> static> void> main(String args[])> > {> > int> b => 55> ;> > String bb => '45'> ;> > // Construct two Integer objects> > Integer x => new> Integer(b);> > Integer y => new> Integer(bb);> > // xxxValue can be used to retrieve> > // xxx type value from int value.> > // xxx can be int,byte,short,long,double,float> > System.out.println(> 'bytevalue(x) = '> > + x.byteValue());> > System.out.println(> 'shortvalue(x) = '> > + x.shortValue());> > System.out.println(> 'intvalue(x) = '> + x.intValue());> > System.out.println(> 'longvalue(x) = '> > + x.longValue());> > System.out.println(> 'doublevalue(x) = '> > + x.doubleValue());> > System.out.println(> 'floatvalue(x) = '> > + x.floatValue());> > int> value => 45> ;> > // bitcount() : can be used to count set bits> > // in twos complement form of the number> > System.out.println(> 'Integer.bitcount(value)='> > + Integer.bitCount(value));> > // numberOfTrailingZeroes and numberOfLeadingZeroes> > // can be used to count prefix and postfix sequence> > // of 0> > System.out.println(> > 'Integer.numberOfTrailingZeros(value)='> > + Integer.numberOfTrailingZeros(value));> > System.out.println(> > 'Integer.numberOfLeadingZeros(value)='> > + Integer.numberOfLeadingZeros(value));> > // highestOneBit returns a value with one on highest> > // set bit position> > System.out.println(> 'Integer.highestOneBit(value)='> > + Integer.highestOneBit(value));> > // highestOneBit returns a value with one on lowest> > // set bit position> > System.out.println(> 'Integer.lowestOneBit(value)='> > + Integer.lowestOneBit(value));> > // reverse() can be used to reverse order of bits> > // reverseBytes() can be used to reverse order of> > // bytes> > System.out.println(> 'Integer.reverse(value)='> > + Integer.reverse(value));> > System.out.println(> 'Integer.reverseBytes(value)='> > + Integer.reverseBytes(value));> > // signum() returns -1,0,1 for negative,0 and> > // positive values> > System.out.println(> 'Integer.signum(value)='> > + Integer.signum(value));> > // hashcode() returns hashcode of the object> > int> hash = x.hashCode();> > System.out.println(> 'hashcode(x) = '> + hash);> > // equals returns boolean value representing> > // equality> > boolean> eq = x.equals(y);> > System.out.println(> 'x.equals(y) = '> + eq);> > // compare() used for comparing two int values> > int> e = Integer.compare(x, y);> > System.out.println(> 'compare(x,y) = '> + e);> > // compareTo() used for comparing this value with> > // some other value> > int> f = x.compareTo(y);> > System.out.println(> 'x.compareTo(y) = '> + f);> > }> }>

Producción :

bytevalue(x) = 55 shortvalue(x) = 55 intvalue(x) = 55 longvalue(x) = 55 doublevalue(x) = 55.0 floatvalue(x) = 55.0 Integer.bitcount(value)=4 Integer.numberOfTrailingZeros(value)=0 Integer.numberOfLeadingZeros(value)=26 Integer.highestOneBit(value)=32 Integer.lowestOneBit(value)=1 Integer.reverse(value)=-1275068416 Integer.reverseBytes(value)=754974720 Integer.signum(value)=1 hashcode(x) = 55 x.equals(y) = false compare(x,y) = 1 x.compareTo(y) = 1 

Inicialización de la clase contenedora Integer en Java:

Tipo 1: Inicializando directamente:

Se creará un objeto constante de clase Integer dentro del espacio de constantes en la memoria del montón. Espacio de constantes: es solo imaginar para comprender mejor que hay algo de espacio para constantes en la memoria del montón.

Ejemplo:

Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again 

Entero x = 200

  • El compilador convierte la declaración anterior en: Entero x=Entero.valorDe(200) . Esto se conoce como autoboxing . El valor entero primitivo 200 se convierte en un objeto.

(Para comprender Autoboxing y Unboxing, consulte aquí: )

  • x apunta a 200 que está presente en el espacio de constantes. Consulte la figura 1.
Examen img 1

Figura 1

x = 300

  • El autoboxing se realiza nuevamente porque x es un objeto de clase Integer que se inicializa directamente.
  • Nota: El objeto (x) inicializado directamente no se puede modificar porque es una constante. Cuando intentamos modificar el objeto apuntando a una nueva constante (300), la antigua constante (200) estará presente en la memoria del montón, pero el objeto apuntará a la nueva constante.
  • x apunta a 300 que está presente en el espacio de constantes. Consulte la figura 2.

Figura 2

x = 10

  • Nota: De forma predeterminada, para los valores -128 a 127, el método Integer.valueOf() no creará una nueva instancia de Integer. Devuelve un valor de su caché.
  • x puntos 10 que está presente en el caché.

Fig. 3

Si asignamos x = 200 o x=300 la próxima vez, apuntará al valor 200 o 300 que ya está presente en el espacio de constantes. Si asignamos valores a x distintos de estos dos valores, se crea una nueva constante.

(Consulte el tema de comparación de clases contenedoras de enteros para una mejor comprensión)

Tipo 2: Inicialización dinámica:

Se creará un objeto de clase Integer que no sea una constante fuera del espacio de constantes. También crea una constante entera dentro del espacio de constantes. La variable apuntará al objeto Integer y no a la constante Integer.

Ejemplo:

Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization 

Entero a = nuevo entero(250)

  • 250 se crea dentro y fuera del espacio de constantes. La variable 'a' señalará el valor que está fuera del espacio de constantes. Consulte la figura 4.

Figura 4

a = 350;

  • Después del autoboxing, 'a' apuntará a 350. Consulte la Fig. 5.

figura 5

Si asignamos a = 250 la próxima vez, no apuntará al objeto que ya está presente con el mismo valor, sino que creará un nuevo objeto.

Referencias: Documentación oficial de Java