logo

Classe Java.lang.Integer a Java

La classe Integer és una classe d'embolcall per al tipus primitiu int que conté diversos mètodes per tractar eficaçment un valor int com convertir-lo en una representació de cadena i viceversa. Un objecte de la classe Integer pot contenir un sol valor int.

Constructors:



  • Enter (int b): Crea un objecte Integer inicialitzat amb el valor proporcionat.

Sintaxi:

public Integer(int b)>

Paràmetres:

b : value with which to initialize>
  • Enter (cadena s): Crea un objecte Integer inicialitzat amb el valor int proporcionat per la representació de cadena. La base per defecte es considera 10.

Sintaxi:



public Integer(String s) throws NumberFormatException>

Paràmetres:

s : string representation of the int value>

Llançaments:

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

Mètodes:



1. toString() : Retorna la cadena corresponent al valor int.

Sintaxi:

public String toString(int b)>

Paràmetres:

b : int value for which string representation required.>

2. toHexString() : Retorna la cadena corresponent al valor int en forma hexadecimal, és a dir, retorna una cadena que representa el valor int en caràcters hexadecimals-[0-9][a-f]

Sintaxi:

public String toHexString(int b)>

Paràmetres:

b : int value for which hex string representation required.>

3. toOctalString() : Retorna la cadena corresponent al valor int en forma octal, és a dir, retorna una cadena que representa el valor int en caràcters octal-[0-7]

Sintaxi:

public String toOctalString(int b)>

Paràmetres:

b : int value for which octal string representation required.>

4. toBinaryString() : Retorna la cadena corresponent al valor int en dígits binaris, és a dir, retorna una cadena que representa el valor int en caràcters hexadecimals-[0/1]

Sintaxi:

public String toBinaryString(int b)>

Paràmetres:

b : int value for which binary string representation required.>

5. valueOf() : retorna l'objecte Integer inicialitzat amb el valor proporcionat.

Sintaxi:

public static Integer valueOf(int b)>

Paràmetres:

b : a int value>
  • valueOf(String val, int radix) : Una altra funció sobrecarregada que proporciona una funció similar a la nova Integer(Integer.parseInteger(val,radix))

Sintaxi:

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

Paràmetres:

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

Llançaments:

NumberFormatException : if String cannot be parsed to a int value in given radix.>
  • valueOf(Val de cadena) : Una altra funció sobrecarregada que proporciona una funció similar a la nova Integer(Integer.parseInt(val,10))

Sintaxi:

public static Integer valueOf(String s) throws NumberFormatException>

Paràmetres:

s : a String object to be parsed as int>

Llançaments:

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

6. parseInt() : retorna el valor int analitzant la cadena a la base proporcionada. Difereix de valueOf() ja que retorna un valor int primitiu i valueOf() retorna un objecte Integer.

Sintaxi:

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

Paràmetres:

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

Llançaments:

NumberFormatException : if String cannot be parsed to a int value in given radix.>
  • Un altre mètode sobrecarregat que només conté String com a paràmetre, radix està establert per defecte a 10.

Sintaxi:

public static int parseInt(String val) throws NumberFormatException>

Paràmetres:

val : String representation of int>

Llançaments:

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

7. getInteger(): retorna l'objecte Integer que representa el valor associat a la propietat del sistema donada o nul si no existeix.

Sintaxi:

public static Integer getInteger(String prop)>

Paràmetres:

prop : System property>
  • Un altre mètode sobrecarregat que retorna el segon argument si la propietat no existeix, és a dir, no retorna null sinó un valor per defecte proporcionat per l'usuari.

Sintaxi:

public static Integer getInteger(String prop, int val)>

Paràmetres:

prop : System property val : value to return if property does not exist.>
  • Un altre mètode sobrecarregat que analitza el valor segons el valor retornat, és a dir, si el valor retornat comença amb #, que s'analitza com a hexadecimal, si comença amb 0, que s'analitza com a octal, sinó decimal.

Sintaxi:

public static Integer getInteger(String prop, Integer val)>

Paràmetres:

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

8. descodificar() : retorna un objecte Integer que conté el valor descodificat de la cadena proporcionada. La cadena proporcionada ha de tenir la forma següent, sinó es llançarà NumberFormatException:
Decimal- (Signe)Número_decimal
Hex- (Signe) 0xHex_Dígits
Hex- (Signe) 0XHex_Dígits
Octal- (Signe)0″Dígits_Octals

Sintaxi:

public static Integer decode(String s) throws NumberFormatException>

Paràmetres:

s : encoded string to be parsed into int val>

Llançaments:

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

9. rotateLeft() : Retorna un int primitiu girant els bits deixats per la distància donada en forma de complement a dos del valor donat. Quan es gira a l'esquerra, el bit més significatiu es mou al costat dret, o la posició menys significativa, és a dir, es produeix un moviment cíclic de bits. La distància negativa significa gir a la dreta.

Sintaxi:

public static int rotateLeft(int val, int dist)>

Paràmetres:

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

10. girar a la dreta() : Retorna un int primitiu fent girar els bits a la dreta per la distància donada en la forma de complement de dos del valor donat. Quan es gira cap a la dreta, el bit menys significatiu es mou cap al costat esquerre, o la posició més significativa, és a dir, es produeix un moviment cíclic de bits. La distància negativa significa gir a l'esquerra.

Sintaxi:

public static int rotateRight(int val, int dist)>

Paràmetres:

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>));> >}> }>

>

>

Sortida:

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. byteValue() : retorna un valor de byte corresponent a aquest objecte sencer.

Sintaxi:

public byte byteValue()>

12. shortValue() : retorna un valor curt corresponent a aquest objecte sencer.

Sintaxi:

public short shortValue()>

13. intValue() : retorna un valor int corresponent a aquest objecte enter.

llista en java

Sintaxi:

public int intValue()>

13. LongValue(): retorna un valor llarg corresponent a aquest objecte enter.

Sintaxi:

public long longValue()>

14. doubleValue() : retorna un valor doble corresponent a aquest objecte sencer.

Sintaxi:

public double doubleValue()>

15. floatValue() : retorna un valor flotant corresponent a aquest objecte enter.

Sintaxi:

public float floatValue()>

16. hashCode() : retorna el codi hash corresponent a aquest objecte enter.

Sintaxi:

public int hashCode()>

17. compte de bits() : Retorna el nombre de bits conjunts en complement de dos de l'enter donat.

Sintaxi:

public static int bitCount(int i)>

Paràmetres:

i : int value whose set bits to count>

18. numberOfLeadingZeroes() : Retorna el nombre de 0 bits que precedeixen l'1 bit més alt en forma de complement de dos del valor, és a dir, si el nombre en forma de complement de dos és 0000 1010 0000 0000, aquesta funció retornaria 4.

Sintaxi:

public static int numberofLeadingZeroes(int i)>

Paràmetres:

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

19. numberOfTrailingZeroes() : Retorna el nombre de 0 bits després de l'últim bit en forma de complement de dos del valor, és a dir, si el nombre en forma de complement de dos és 0000 1010 0000 0000, aquesta funció retornaria 9.

Sintaxi:

public static int numberofTrailingZeroes(int i)>

Paràmetres:

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

20. highestOneBit() : Retorna un valor amb com a màxim un únic bit, en la posició del bit més alt del valor donat. Retorna 0 si el valor donat és 0, és a dir, si el nombre és 0000 0000 0000 1111, aleshores aquesta funció retorna 0000 0000 0000 1000 (un bit més alt en el nombre donat)

Sintaxi:

public static int highestOneBit(int i)>

Paràmetres:

i : int value>

21. LowestOneBit() : Retorna un valor amb com a màxim un únic bit, en la posició del bit més baix del valor donat. Retorna 0 si el valor donat és 0, és a dir, si el nombre és 0000 0000 0000 1111, aleshores aquesta funció retorna 0000 0000 0000 0001 (un bit més alt en el nombre donat)

Sintaxi:

public static int LowestOneBit(int i)>

Paràmetres:

i : int value>

22. és igual a(): S'utilitza per comparar la igualtat de dos objectes enters. Aquest mètode retorna true si els dos objectes contenen el mateix valor int. S'ha d'utilitzar només si es verifica la igualtat. En tots els altres casos, s'hauria de preferir el mètode compareTo.

Sintaxi:

public boolean equals(Object obj)>

Paràmetres:

obj : object to compare with>

23. compara amb() : S'utilitza per comparar dos objectes enters per a la igualtat numèrica. Això s'ha d'utilitzar quan es comparen dos valors enters per a la igualtat numèrica, ja que diferenciaria entre valors menors i majors. Retorna un valor inferior a 0,0, un valor superior a 0 per a menor que, igual a i major que.

Sintaxi:

public int compareTo(Integer b)>

Paràmetres:

b : Integer object to compare with>

24. compara () : S'utilitza per comparar dos valors int primitius per a la igualtat numèrica. Com que és un mètode estàtic, per tant es pot utilitzar sense crear cap objecte d'Integer.

Sintaxi:

public static int compare(int x,int y)>

Paràmetres:

x : int value y : another int value>

25. signe() : retorna -1 per a valors negatius, 0 per a 0 i +1 per a valors superiors a 0.

android.process.acore continua aturant-se

Sintaxi:

public static int signum(int val)>

Paràmetres:

val : int value for which signum is required.>

26. revés() : retorna un valor int primitiu invertint l'ordre dels bits en forma de complement a dos del valor int donat.

Sintaxi:

public static int reverseBytes(int val)>

Paràmetres:

val : int value whose bits to reverse in order.>

27. reverseBytes() : retorna un valor int primitiu invertint l'ordre dels bytes en forma de complement a dos del valor int donat.

Sintaxi:

public static int reverseBytes(int val)>

Paràmetres:

val : int value whose bits to reverse in order.>

28. static int compareUnsigned(int x, int y) : Aquest mètode compara dos valors int numèricament tractant els valors com a sense signe.

Sintaxi:

public static int compareUnsigned(int x, int y)>

29. static int divideUnsigned(int dividend, int divisor) : Aquest mètode retorna el quocient sense signe de dividir el primer argument pel segon on cada argument i el resultat s'interpreta com un valor sense signe.

Sintaxi:

public static int divideUnsigned(int dividend, int divisor)>

30. static int max(int ​​a, int b) : aquest mètode retorna el major dels dos valors int com si cridés a Math.max.

Sintaxi:

public static int max(int a, int b)>

31. static int min(int a, int b) : aquest mètode retorna el més petit dels dos valors int com si cridés a Math.min.

Sintaxi:

public static int min(int a, int b)>

32. static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Aquest mètode analitza l'argument CharSequence com a int sense signar a la base especificada, començant a l'index beginIndex especificat i estenent-se fins a endIndex – 1.

Sintaxi:

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

33. static int parseUnsignedInt(String s) : aquest mètode analitza l'argument de la cadena com un nombre sencer decimal sense signe.

Sintaxi:

public static int parseUnsignedInt(String s) throws NumberFormatException>

34. static int parseUnsignedInt(String s, int radix) : aquest mètode analitza l'argument de la cadena com un nombre enter sense signe a la base especificada pel segon argument.

Sintaxi:

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

35. static int restantUnsigned(int dividend, int divisor) : Aquest mètode retorna la resta sense signe de dividir el primer argument pel segon, on cada argument i el resultat s'interpreta com un valor sense signe.

Sintaxi:

public static int remainderUnsigned(int dividend, int divisor)>

36. static int suma(int a, int b) : Aquest mètode afegeix dos nombres enters junts segons l'operador +.

Sintaxi:

public static int sum(int a, int b)>

37. static long toUnsignedLong(int x) : aquest mètode converteix l'argument en una conversió llarg per una conversió sense signar.

Sintaxi:

public static long toUnsignedLong(int x)>

38. static String toUnsignedString(int i) : aquest mètode retorna una representació de cadena de l'argument com a valor decimal sense signe.

Sintaxi:

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);> >}> }>

>

>

Sortida:

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>

Inicialització de la classe d'embolcall Integer a Java:

Tipus 1: Inicialització directa:

Es crearà un objecte constant de la classe Integer dins de l'espai de constants de la memòria de l'heap. Espai de constants: només cal imaginar per entendre millor que hi ha espai per a constants a la memòria de pila.

Exemple:

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

Nombre enter x = 200

  • El compilador converteix la declaració anterior en: Enter x=Integer.valueOf(200) . Això es coneix com Autoboxing . El valor enter primitiu 200 es converteix en un objecte.

(Per entendre Autoboxing i Unboxing, comproveu aquí: )

  • x apunta a 200 que està present a l'espai de constants. Consulteu la figura 1.
Imatge d'exemple 1

Fig. 1

x = 300

  • L'autoboxing es torna a fer perquè x és un objecte de classe Integer que s'inicialitza directament.
  • Nota: L'objecte(x) inicialitzat directament no es pot modificar ja que és una constant. Quan intentem modificar l'objecte apuntant a una constant nova (300), la constant antiga (200) estarà present a la memòria de pila, però l'objecte apuntarà a la constant nova.
  • x apunta a 300 que està present a l'espai de constants. Consulteu la figura 2.

Fig. 2

x = 10

  • Nota: Per defecte per als valors -128 a 127, el mètode Integer.valueOf() no crearà una nova instància d'Integer. Retorna un valor de la seva memòria cau.
  • x punts 10 que està present a la memòria cau.

Fig. 3

Si assignem x = 200 o x=300 la propera vegada, apuntarà al valor 200 o 300 que ja està present a l'espai de constants. Si assignem valors a x diferents d'aquests dos valors, es crea una constant nova.

(Consulteu el tema de comparació de classes d'embolcall enter per a una millor comprensió)

Tipus 2: Inicialització dinàmica:

Un objecte de classe Integer que no sigui una constant es crearà fora de l'espai de constants. També crea una constant entera dins de l'espai de constants. La variable apuntarà a l'objecte Integer i no a la constant Integer.

Exemple:

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

Enter a = Enter nou (250)

  • 250 es crea dins i fora de l'espai de constants. La variable 'a' assenyalarà el valor que es troba fora de l'espai de les constants. Consulteu la figura 4.

Fig. 4

a = 350;

  • Després de l'autoboxing, 'a' apuntarà a 350. Consulteu la figura 5.

Fig. 5

Si assignem a = 250 la propera vegada, no apuntarà a l'objecte ja present amb el mateix valor, crearà un objecte nou.

Referències: Documentació oficial de Java