Java.lang.Integer trieda v jazyku Java
Trieda Integer je obalová trieda pre primitívny typ int, ktorá obsahuje niekoľko metód na efektívne zaobchádzanie s hodnotou int, ako je jej konverzia na reprezentáciu reťazca a naopak. Objekt triedy Integer môže obsahovať jednu int hodnotu.
Konštruktéri:
- Celé číslo (int b): Vytvorí objekt typu Integer inicializovaný zadanou hodnotou.
Syntax:
public Integer(int b)
Parametre:
b : value with which to initialize
- Celé číslo (reťazec s): Vytvorí objekt typu Integer inicializovaný hodnotou int poskytnutou reťazcovou reprezentáciou. Predvolený radix sa považuje za 10.
Syntax:
public Integer(String s) throws NumberFormatException
Parametre:
s : string representation of the int value
Hody:
NumberFormatException : If the string provided does not represent any int value.
Metódy:
1. toString() : Vráti reťazec zodpovedajúci hodnote int.
Syntax:
public String toString(int b)
parametre:
b : int value for which string representation required.
2. toHexString() : Vráti reťazec zodpovedajúci hodnote int v hexadecimálnom tvare, to znamená, že vráti reťazec predstavujúci hodnotu int v hexadecimálnych znakoch-[0-9][a-f]
Syntax:
public String toHexString(int b)
Parametre:
b : int value for which hex string representation required.
3. toOctalString() : Vráti reťazec zodpovedajúci hodnote int v osmičkovom tvare, to znamená, že vráti reťazec predstavujúci hodnotu int v osmičkových znakoch [0-7]
Syntax:
public String toOctalString(int b)
Parametre:
b : int value for which octal string representation required.
4. toBinaryString() : Vráti reťazec zodpovedajúci hodnote int v binárnych číslach, to znamená, že vráti reťazec predstavujúci hodnotu int v hexadecimálnych znakoch [0/1]
Syntax:
public String toBinaryString(int b)
Parametre:
b : int value for which binary string representation required.
5. valueOf() : vráti objekt Integer inicializovaný zadanou hodnotou.
Syntax:
public static Integer valueOf(int b)
Parametre:
b : a int value
- valueOf(String val,int radix) : Ďalšia preťažená funkcia, ktorá poskytuje funkciu podobnú novému Integer(Integer.parseInteger(val,radix))
Syntax:
public static Integer valueOf(String val, int radix) throws NumberFormatException
Parametre:
val : String to be parsed into int value radix : radix to be used while parsing
Hody:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- valueOf(String hodnota) : Ďalšia preťažená funkcia, ktorá poskytuje funkciu podobnú novému Integer(Integer.parseInt(val,10))
Syntax:
public static Integer valueOf(String s) throws NumberFormatException
Parametre:
s : a String object to be parsed as int
Hody:
NumberFormatException : if String cannot be parsed to a int value in given radix.
6. parseInt() : vráti hodnotu int analýzou reťazca v poskytnutom radixe. Líši sa od valueOf(), pretože vracia primitívnu int hodnotu a valueOf() vracia objekt typu Integer.
Syntax:
public static int parseInt(String val, int radix) throws NumberFormatException
Parametre:
val : String representation of int radix : radix to be used while parsing
Hody:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- Ďalšia preťažená metóda obsahujúca iba reťazec ako parameter, radix je štandardne nastavený na 10.
Syntax:
public static int parseInt(String val) throws NumberFormatException
Parametre:
val : String representation of int
Hody:
NumberFormatException : if String cannot be parsed to a int value in given radix.
7. getInteger(): vráti objekt Integer predstavujúci hodnotu spojenú s danou vlastnosťou systému alebo hodnotu null, ak neexistuje.
Syntax:
public static Integer getInteger(String prop)
parametre:
prop : System property
- Ďalšia preťažená metóda, ktorá vracia druhý argument, ak vlastnosť neexistuje, to znamená, že nevracia hodnotu null, ale predvolenú hodnotu zadanú používateľom.
Syntax:
public static Integer getInteger(String prop, int val)
Parametre:
prop : System property val : value to return if property does not exist.
- Ďalšia preťažená metóda, ktorá analyzuje hodnotu podľa vrátenej hodnoty, to znamená, že ak vrátená hodnota začína #, potom je analyzovaná ako hexadecimálna, ak začína 0, potom je analyzovaná ako osmičková, inak desiatková.
Syntax:
public static Integer getInteger(String prop, Integer val)
Parametre:
prop : System property val : value to return if property does not exist.
8. dekódovať() : vráti objekt typu Integer, ktorý obsahuje dekódovanú hodnotu poskytnutého reťazca. Zadaný reťazec musí mať nasledujúci tvar, inak bude vyvolaná výnimka NumberFormatException-
Desatinné- (znamienko) Desatinné_číslo
Hex- (znak)0xHex_číslice
Hex- (Sign)0XHex_Digits
Osmičková- (znamienko)0″Octal_Digits
Syntax:
public static Integer decode(String s) throws NumberFormatException
Parametre:
s : encoded string to be parsed into int val
Hody:
NumberFormatException : If the string cannot be decoded into a int value
9. otočte doľava() : Vráti primitívny int otočením bitov doľava o danú vzdialenosť vo forme dvojkového doplnku zadanej hodnoty. Pri otáčaní doľava sa najvýznamnejší bit presunie na pravú stranu alebo na pozíciu najmenej významnej, t.j. dochádza k cyklickému pohybu bitov. Záporná vzdialenosť znamená pravú rotáciu.
Syntax:
public static int rotateLeft(int val, int dist)
Parametre:
val : int value to be rotated dist : distance to rotate
10. otočiťVpravo() : Vráti primitívny int otočením bitov doprava o danú vzdialenosť vo forme dvojkového doplnku zadanej hodnoty. Pri otáčaní doprava sa najmenej významný bit presunie na ľavú stranu alebo najvýznamnejšia poloha, t.j. prebieha cyklický pohyb bitov. Záporná vzdialenosť znamená rotáciu doľava.
Syntax:
public static int rotateRight(int val, int dist)
Parametre:
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> ));> > }> }> |
Výkon:
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() : vráti bajtovú hodnotu zodpovedajúcu tomuto Integer Object.
Syntax:
public byte byteValue()
12. shortValue() : vráti krátku hodnotu zodpovedajúcu tomuto Integer Object.
Syntax:
public short shortValue()
13. intValue() : vráti int hodnotu zodpovedajúcu tomuto Integer Object.
Syntax:
public int intValue()
13. longValue() : vráti dlhú hodnotu zodpovedajúcu tomuto Integer Object.
Syntax:
public long longValue()
14. doubleValue() : vráti dvojitú hodnotu zodpovedajúcu tomuto Integer Object.
Syntax:
public double doubleValue()
15. floatValue() : vráti plávajúcu hodnotu zodpovedajúcu tomuto Integer Object.
Syntax:
public float floatValue()
16. hashCode() : vráti hašovací kód zodpovedajúci tomuto celočíselnému objektu.
Syntax:
public int hashCode()
17. bitcount() : Vráti počet nastavených bitov v dvojiciach zadaného celého čísla.
Syntax:
public static int bitCount(int i)
Parametre:
i : int value whose set bits to count
18. numberOfLeadingZeroes() : Vráti počet 0 bitov predchádzajúcich najvyššiemu 1 bitu vo forme dvojkového doplnku hodnoty, t. j. ak číslo vo forme dvojkového doplnku je 0000 1010 0000 0000, potom táto funkcia vráti 4.
Syntax:
public static int numberofLeadingZeroes(int i)
Parametre:
i : int value whose leading zeroes to count in twos complement form
19. numberOfTrailingZeroes() : Vráti počet 0 bitov nasledujúcich za posledným 1 bitom vo forme dvojkového doplnku hodnoty, t. j. ak číslo vo forme dvojkového doplnku je 0000 1010 0000 0000, potom táto funkcia vráti 9.
Syntax:
public static int numberofTrailingZeroes(int i)
Parametre:
i : int value whose trailing zeroes to count in twos complement form
20. najvyššíOneBit() : Vráti hodnotu s najviac jedným bitom na pozícii najvyššieho jedného bitu v danej hodnote. Vráti 0, ak je zadaná hodnota 0, teda ak je číslo 0000 0000 0000 1111, potom táto funkcia vráti 0000 0000 0000 1000 (jeden najviac jeden bit v danom čísle)
Syntax:
public static int highestOneBit(int i)
Parametre:
i : int value
21. Najnižší JedenBit() : Vráti hodnotu s najviac jedným bitom na pozícii najnižšieho bitu v danej hodnote. Vráti 0, ak je zadaná hodnota 0, to znamená, ak je číslo 0000 0000 0000 1111, potom táto funkcia vráti 0000 0000 0000 0001 (jeden najviac jeden bit v danom čísle)
Syntax:
public static int LowestOneBit(int i)
Parametre:
i : int value
22. rovná sa() : Používa sa na porovnanie rovnosti dvoch objektov typu Integer. Táto metóda vráti hodnotu true, ak oba objekty obsahujú rovnakú hodnotu int. Mal by sa použiť iba pri kontrole rovnosti. Vo všetkých ostatných prípadoch by sa mala uprednostniť metóda porovnanie.
Syntax:
public boolean equals(Object obj)
Parametre:
obj : object to compare with
23. Porovnať() : Používa sa na porovnanie dvoch objektov typu Integer pre numerickú rovnosť. Toto by sa malo použiť pri porovnávaní dvoch celočíselných hodnôt pre číselnú rovnosť, pretože by sa tým rozlišovali menšie a väčšie hodnoty. Vráti hodnotu menšiu ako 0,0, hodnotu väčšiu ako 0 pre menšiu ako, rovnú a väčšiu ako.
Syntax:
public int compareTo(Integer b)
Parametre:
b : Integer object to compare with
24. porovnať() : Používa sa na porovnanie dvoch primitívnych hodnôt int pre numerickú rovnosť. Keďže ide o statickú metódu, možno ju použiť bez vytvorenia akéhokoľvek objektu typu Integer.
Syntax:
public static int compare(int x,int y)
Parametre:
x : int value y : another int value
25. znak() : vráti -1 pre záporné hodnoty, 0 pre 0 a +1 pre hodnoty väčšie ako 0.
Syntax:
public static int signum(int val)
Parametre:
val : int value for which signum is required.
26. spätne() : vráti primitívnu int hodnotu, ktorá obráti poradie bitov vo forme dvojkového doplnku danej int hodnoty.
Syntax:
public static int reverseBytes(int val)
Parametre:
val : int value whose bits to reverse in order.
27. reverseBytes() : vráti primitívnu int hodnotu, ktorá obráti poradie bajtov vo forme dvojkového doplnku danej int hodnoty.
Syntax:
public static int reverseBytes(int val)
Parametre:
val : int value whose bits to reverse in order.
28. statický int porovnaťUnsigned(int x, int y) : Táto metóda porovnáva dve hodnoty typu int numericky, pričom hodnoty považuje za bez znamienka.
Syntax:
public static int compareUnsigned(int x, int y)
29. static int divisionUnsigned(int dividend, int delitel) : Táto metóda vráti podiel bez znamienka vydelenia prvého argumentu druhým, pričom každý argument a výsledok sa interpretujú ako hodnota bez znamienka.
Syntax:
public static int divideUnsigned(int dividend, int divisor)
30. static int max(int a, int b) : Táto metóda vráti väčšiu z dvoch hodnôt int, akoby volaním Math.max.
Syntax:
public static int max(int a, int b)
31. static int min(int a, int b) : Táto metóda vráti menšiu z dvoch hodnôt int, akoby volaním Math.min.
Syntax:
public static int min(int a, int b)
32. static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Táto metóda analyzuje argument CharSequence ako int bez znamienka v zadanom radixe, začínajúc na zadanom beginIndex a siahajúcom po endIndex – 1.
Syntax:
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
33. static int parseUnsignedInt(String s) : Táto metóda analyzuje argument reťazca ako celé desiatkové číslo bez znamienka.
Syntax:
public static int parseUnsignedInt(String s) throws NumberFormatException
34. static int parseUnsignedInt(String s, int radix) : Táto metóda analyzuje argument reťazca ako celé číslo bez znamienka v radixe špecifikovanom druhým argumentom.
Syntax:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException
35. static int zvyšokNepodpísané(int delenec, int deliteľ) : Táto metóda vráti zvyšok bez znamienka vydelením prvého argumentu druhým, pričom každý argument a výsledok sa interpretujú ako hodnota bez znamienka.
Syntax:
public static int remainderUnsigned(int dividend, int divisor)
36. statický int súčet(int a, int b) : Táto metóda spočíta dve celé čísla podľa operátora +.
Syntax:
public static int sum(int a, int b)
37. static long toUnsignedLong(int x) : Táto metóda konvertuje argument na dlhý pomocou konverzie bez znamienka.
Syntax:
public static long toUnsignedLong(int x)
38. statický reťazec toUnsignedString(int i) : Táto metóda vráti reťazcovú reprezentáciu argumentu ako desiatkovú hodnotu bez znamienka.
Syntax:
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);> > }> }> |
Výkon :
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
Inicializácia triedy Integer wrapper v jazyku Java:
Typ 1: Priama inicializácia:
V priestore konštánt v pamäti haldy sa vytvorí konštantný objekt triedy Integer. Priestor konštánt: Pre lepšie pochopenie je potrebné si predstaviť, že v pamäti haldy je určitý priestor pre konštanty.
Príklad:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again
Celé číslo x = 200
- Kompilátor prevedie vyššie uvedený príkaz na: Celé číslo x=Integer.valueOf(200) . Toto je známe ako Autoboxing . Primitívna celočíselná hodnota 200 sa skonvertuje na objekt.
(Pre pochopenie Autoboxing & Unboxing skontrolujte tu: )
- x ukazuje na 200, ktorá je prítomná v priestore konštánt. Pozri Obr. 1.
Obr
x = 300
- Autoboxing sa robí znova, pretože x je objekt triedy Integer, ktorý je priamo inicializovaný.
- Poznámka: Priamo inicializovaný objekt (x) nemožno modifikovať, pretože je konštantný. Keď sa pokúsime upraviť objekt tak, že ukážeme na novú konštantu (300), stará konštanta (200) bude prítomná v pamäti haldy, ale objekt bude ukazovať na novú konštantu.
- x ukazuje na 300, ktorá je prítomná v priestore konštánt. Pozri Obr. 2.
Obr
x = 10
- Poznámka: Štandardne pre hodnoty -128 až 127 metóda Integer.valueOf() nevytvorí novú inštanciu Integer. Vráti hodnotu zo svojej vyrovnávacej pamäte.
- x bodov 10, ktoré sa nachádzajú vo vyrovnávacej pamäti.
Obr
Ak nabudúce priradíme x = 200 alebo x=300, ukáže to na hodnotu 200 alebo 300, ktorá je už prítomná v priestore konštánt. Ak x priradíme iné hodnoty ako tieto dve hodnoty, potom to vytvorí novú konštantu.
(Pre lepšie pochopenie si pozrite tému porovnania tried obalu Integer)
Typ 2: Dynamická inicializácia:
Objekt triedy Integer, ktorý nie je konštantou, bude vytvorený mimo priestoru konštánt. Vytvára tiež celočíselnú konštantu v priestore konštánt. Premenná bude ukazovať na objekt Integer a nie na konštantu Integer.
Príklad:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization
Celé číslo a = nové celé číslo (250)
- 250 sa vytvára vo vnútri a mimo priestoru konštánt. Premenná „a“ bude ukazovať hodnotu, ktorá je mimo priestoru konštánt. Pozri Obr. 4.
Obr
a = 350;
- Po autoboxingu bude „a“ ukazovať na 350. Pozri obr. 5.
Obr
Ak nabudúce priradíme a = 250, nebude to ukazovať na už prítomný objekt s rovnakou hodnotou, vytvorí sa nový objekt.
Referencie: Oficiálna dokumentácia Java