Java.lang.Integer klasė Java
Integer klasė yra primityviojo tipo int įvyniojimo klasė, kurioje yra keli metodai, leidžiantys efektyviai susidoroti su int reikšme, pavyzdžiui, konvertuoti ją į eilutės atvaizdavimą ir atvirkščiai. Integer klasės objektas gali turėti vieną int reikšmę.
Konstruktoriai:
- Sveikasis skaičius(int b): Sukuria sveikojo skaičiaus objektą, inicijuotą su pateikta verte.
Sintaksė:
public Integer(int b)
Parametrai:
b : value with which to initialize
- Sveikasis skaičius (eilutės): Sukuria sveikojo skaičiaus objektą, inicijuotą su int reikšme, kurią pateikia eilutės vaizdavimas. Numatytasis radiksas laikomas 10.
Sintaksė:
public Integer(String s) throws NumberFormatException
Parametrai:
s : string representation of the int value
Metimai:
NumberFormatException : If the string provided does not represent any int value.
Metodai:
1. toString() : Grąžina eilutę, atitinkančią int reikšmę.
Sintaksė:
public String toString(int b)
Parametrai:
b : int value for which string representation required.
2. toHexString() : Grąžina eilutę, atitinkančią int reikšmę šešioliktaine forma, tai yra, ji grąžina eilutę, vaizduojančią int reikšmę šešioliktainiais simboliais-[0-9][a-f]
Sintaksė:
public String toHexString(int b)
Parametrai:
b : int value for which hex string representation required.
3. to OctalString() : Grąžina eilutę, atitinkančią int reikšmę aštuontaine forma, ty grąžina eilutę, nurodančią int reikšmę aštuontainiais simboliais-[0-7]
Sintaksė:
public String toOctalString(int b)
Parametrai:
b : int value for which octal string representation required.
4. toBinaryString() : Grąžina eilutę, atitinkančią int reikšmę dvejetainiais skaitmenimis, ty grąžina eilutę, vaizduojančią int reikšmę šešioliktainiais simboliais-[0/1]
Sintaksė:
public String toBinaryString(int b)
Parametrai:
b : int value for which binary string representation required.
5. valueOf() : grąžina sveikojo skaičiaus objektą, inicijuotą su pateikta reikšme.
Sintaksė:
public static Integer valueOf(int b)
Parametrai:
b : a int value
- valueOf(eilutės val,int radix) : Kita perkrauta funkcija, teikianti funkciją, panašią į naują sveikąjį skaičių (Integer.parseInteger(val,radix))
Sintaksė:
public static Integer valueOf(String val, int radix) throws NumberFormatException
Parametrai:
val : String to be parsed into int value radix : radix to be used while parsing
Metimai:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- valueOf(String val) : Kita perkrauta funkcija, teikianti funkciją, panašią į naują sveikąjį skaičių (Integer.parseInt(val,10))
Sintaksė:
public static Integer valueOf(String s) throws NumberFormatException
Parametrai:
s : a String object to be parsed as int
Metimai:
NumberFormatException : if String cannot be parsed to a int value in given radix.
6. parseInt() : grąžina int reikšmę, analizuodama eilutę pateiktu radiksu. Skiriasi nuo valueOf(), nes grąžina primityvią int reikšmę, o valueOf() grąžina sveikąjį skaičių.
Sintaksė:
public static int parseInt(String val, int radix) throws NumberFormatException
Parametrai:
val : String representation of int radix : radix to be used while parsing
Metimai:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- Kitas perkrautas metodas, kurio parametras yra tik eilutė, radix pagal numatytuosius nustatymus nustatytas į 10.
Sintaksė:
public static int parseInt(String val) throws NumberFormatException
Parametrai:
val : String representation of int
Metimai:
NumberFormatException : if String cannot be parsed to a int value in given radix.
7. getInteger(): grąžina sveikojo skaičiaus objektą, nurodantį reikšmę, susietą su nurodyta sistemos ypatybe arba nulį, jei jos neegzistuoja.
Sintaksė:
public static Integer getInteger(String prop)
Parametrai:
prop : System property
- Kitas perkrautas metodas, kuris grąžina antrąjį argumentą, jei ypatybė neegzistuoja, ty grąžina ne nulį, o vartotojo pateiktą numatytąją reikšmę.
Sintaksė:
public static Integer getInteger(String prop, int val)
Parametrai:
prop : System property val : value to return if property does not exist.
- Kitas perkrautas metodas, kuris analizuoja reikšmę pagal grąžintą reikšmę, ty jei grąžinama reikšmė prasideda #, tada ji analizuojama kaip šešioliktainė, jei prasideda nuo 0, nei kaip aštuntainė, kitur dešimtainė.
Sintaksė:
public static Integer getInteger(String prop, Integer val)
Parametrai:
prop : System property val : value to return if property does not exist.
8. dekoduoti () : grąžina sveikojo skaičiaus objektą, turintį iššifruotą pateiktos eilutės reikšmę. Pateikta eilutė turi būti tokios formos, kitaip bus išmestas NumberFormatException-
Dešimtainė – (ženklas) dešimtainis_skaičius
Hex- (ženklas)0xHex_skaitmenys
Hex- (ženklas)0XHex_skaitmenys
Aštuontainis – (ženklas)0″ aštuontainis_skaitmenys
Sintaksė:
public static Integer decode(String s) throws NumberFormatException
Parametrai:
s : encoded string to be parsed into int val
Metimai:
NumberFormatException : If the string cannot be decoded into a int value
9. pasukti į kairę () : Grąžina primityvią int, pasukdama bitus, likusius iki nurodyto atstumo, pateiktos vertės dviejų komplemento forma. Sukant į kairę reikšmingiausias bitas perkeliamas į dešinę arba mažiausiai reikšminga padėtis, ty vyksta ciklinis bitų judėjimas. Neigiamas atstumas reiškia teisingą sukimąsi.
Sintaksė:
public static int rotateLeft(int val, int dist)
Parametrai:
val : int value to be rotated dist : distance to rotate
10. pasukti į dešinę () : Grąžina primityvų int, pasukdamas bitus į dešinę tam tikru atstumu duotosios reikšmės komplemento formoje. Sukant į dešinę mažiausiai reikšmingas bitas perkeliamas į kairę pusę arba reikšmingiausia padėtis, ty vyksta ciklinis bitų judėjimas. Neigiamas atstumas reiškia sukimąsi į kairę.
Sintaksė:
public static int rotateRight(int val, int dist)
Parametrai:
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> ));> > }> }> |
Išvestis:
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() : grąžina baito reikšmę, atitinkančią šį sveikojo skaičiaus objektą.
Sintaksė:
public byte byteValue()
12. shortValue() : grąžina trumpą reikšmę, atitinkančią šį sveikojo skaičiaus objektą.
Sintaksė:
public short shortValue()
13. intValue() : grąžina int reikšmę, atitinkančią šį sveikojo skaičiaus objektą.
Sintaksė:
public int intValue()
13. LongValue() : grąžina ilgą reikšmę, atitinkančią šį sveikojo skaičiaus objektą.
Sintaksė:
public long longValue()
14. DoubleValue() : grąžina dvigubą reikšmę, atitinkančią šį sveikojo skaičiaus objektą.
Sintaksė:
public double doubleValue()
15. floatValue() : grąžina slankiąją reikšmę, atitinkančią šį sveikojo skaičiaus objektą.
Sintaksė:
public float floatValue()
16. maišos kodas () : grąžina maišos kodą, atitinkantį šį sveikojo skaičiaus objektą.
Sintaksė:
public int hashCode()
17. bitų skaičius () : Grąžina rinkinio bitų skaičių pateikto sveikojo skaičiaus papildymu dviem.
Sintaksė:
public static int bitCount(int i)
Parametrai:
i : int value whose set bits to count
18. SkaičiusOfLeadingZeroes() : Grąžina 0 bitų skaičių, einantį prieš didžiausią 1 vertės komplemento formos 1 bitą, t. y. jei skaičius dviejose komplemento formos yra 0000 1010 0000 0000, ši funkcija grąžintų 4.
Sintaksė:
public static int numberofLeadingZeroes(int i)
Parametrai:
i : int value whose leading zeroes to count in twos complement form
19. Nulių skaičius () : Grąžina 0 bitų skaičių po paskutinio 1 vertės komplemento formos bitų, t. y. jei skaičius dviem komplemento forma yra 0000 1010 0000 0000, ši funkcija grąžintų 9.
Sintaksė:
public static int numberofTrailingZeroes(int i)
Parametrai:
i : int value whose trailing zeroes to count in twos complement form
20. DidžiausiasVienasBitas() : Grąžina reikšmę, turinčią ne daugiau kaip vieną bitą, didžiausio vieno bito padėtyje pateiktoje vertėje. Grąžina 0, jei nurodyta reikšmė yra 0, ty jei skaičius yra 0000 0000 0000 1111, tada ši funkcija grąžina 0000 0000 0000 1000 (vienas didžiausias duoto skaičiaus bitas)
Sintaksė:
public static int highestOneBit(int i)
Parametrai:
i : int value
21. LowestOneBit() : Grąžina reikšmę, kurioje yra daugiausia vienas bitas, esantis žemiausio vieno bito padėtyje nurodytoje vertėje. Grąžina 0, jei nurodyta reikšmė yra 0, tai yra, jei skaičius yra 0000 0000 0000 1111, tada ši funkcija grąžina 0000 0000 0000 0001 (vienas didžiausias duoto skaičiaus bitas)
Sintaksė:
public static int LowestOneBit(int i)
Parametrai:
i : int value
22. lygus() : Naudojamas dviejų sveikųjų skaičių lygybei palyginti. Šis metodas grąžina true, jei abiejuose objektuose yra ta pati int reikšmė. Turėtų būti naudojamas tik tikrinant lygybę. Visais kitais atvejais pirmenybė turėtų būti teikiama palyginimo metodui.
Sintaksė:
public boolean equals(Object obj)
Parametrai:
obj : object to compare with
23. PalygintiSu() : Naudojamas dviejų sveikųjų skaičių objektų palyginimui, siekiant skaitinės lygybės. Tai turėtų būti naudojama lyginant dvi skaitinės lygybės sveikųjų skaičių reikšmes, nes tai atskirtų mažesnes ir didesnes reikšmes. Grąžina reikšmę, mažesnę nei 0,0, vertę, didesnę nei 0, jei mažesnė už, lygi ir didesnė nei.
Sintaksė:
public int compareTo(Integer b)
Parametrai:
b : Integer object to compare with
24. Palyginti () : Naudojamas dviem primityvioms int reikšmėms palyginti skaitinei lygybei. Kadangi tai yra statinis metodas, jį galima naudoti nesukūrus jokio sveikojo skaičiaus objekto.
Sintaksė:
public static int compare(int x,int y)
Parametrai:
x : int value y : another int value
25. ženklas () : grąžina -1 neigiamoms reikšmėms, 0 - 0 ir +1, jei reikšmės didesnės nei 0.
Sintaksė:
public static int signum(int val)
Parametrai:
val : int value for which signum is required.
26. atvirkščiai () : grąžina primityvią int reikšmę, pakeičiančią bitų tvarką duotosios int reikšmės dviejų komplemento formoje.
Sintaksė:
public static int reverseBytes(int val)
Parametrai:
val : int value whose bits to reverse in order.
27. atvirkštiniai baitai () : grąžina primityvią int reikšmę, pakeičiančią baitų tvarką duotosios int reikšmės dviejų komplemento formoje.
Sintaksė:
public static int reverseBytes(int val)
Parametrai:
val : int value whose bits to reverse in order.
28. static int palyginimasUnsigned(int x, int y) : Šis metodas lygina dvi int reikšmes, skaitines reikšmes vertinant kaip beženkles.
Sintaksė:
public static int compareUnsigned(int x, int y)
29. statinis tarpinis padalijimasNepasižymėtas (vidinis dividendas, tarpinis daliklis) : Šis metodas grąžina pirmojo argumento dalijimą iš antrojo nepažymėto koeficiento, kai kiekvienas argumentas ir rezultatas yra interpretuojami kaip beženklė reikšmė.
Sintaksė:
public static int divideUnsigned(int dividend, int divisor)
30. statinis int max(int a, int b) : Šis metodas grąžina didesnę iš dviejų int reikšmių, tarsi iškviesdamas Math.max.
Sintaksė:
public static int max(int a, int b)
31. statinis int min(int a, int b) : Šis metodas grąžina mažesnę iš dviejų int reikšmių, tarsi iškviesdamas Math.min.
Sintaksė:
public static int min(int a, int b)
32. static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Šis metodas analizuoja CharSequence argumentą kaip nepasirašytą int nurodytame radikse, pradedant nuo nurodyto startIndex ir tęsiant iki endIndex – 1.
Sintaksė:
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
33. static int parseUnsignedInt(String s) : Šis metodas analizuoja eilutės argumentą kaip beženklį sveikąjį dešimtainį skaičių.
Sintaksė:
public static int parseUnsignedInt(String s) throws NumberFormatException
34. static int parseUnsignedInt(String s, int radix) : Šis metodas analizuoja eilutės argumentą kaip beženklį sveikąjį skaičių antrojo argumento nurodytoje raidėje.
Sintaksė:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException
35. statinis tarpinis likutisNepasirašytas(vidinis dividendas, tarpinis daliklis) : Šis metodas grąžina nepasirašytą likutį, padalijus pirmąjį argumentą iš antrojo, kur kiekvienas argumentas ir rezultatas yra interpretuojami kaip nepažymėta reikšmė.
Sintaksė:
public static int remainderUnsigned(int dividend, int divisor)
36. static int suma(int a, int b) : Šis metodas prideda du sveikuosius skaičius pagal operatorių +.
Sintaksė:
public static int sum(int a, int b)
37. statinis ilgas iki nepasirašytasIlgas(int x) : Šis metodas konvertuoja argumentą į ilgą naudojant nepasirašytą konversiją.
Sintaksė:
public static long toUnsignedLong(int x)
38. statinė eilutė iki nepasirašytos eilutės(int i) : Šis metodas grąžina argumento eilutę kaip nepaženklintą dešimtainę reikšmę.
Sintaksė:
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);> > }> }> |
Išvestis:
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
Sveikųjų skaičių įpakavimo klasės inicijavimas Java:
1 tipas: inicijuojama tiesiogiai:
Konstantų erdvėje krūvos atmintyje bus sukurtas Integer klasės pastovus objektas. Konstantų erdvė: tiesiog įsivaizduokite, kad būtų geriau suprasti, kad krūvos atmintyje yra vietos konstantoms.
Pavyzdys:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again
Sveikasis skaičius x = 200
- Kompiliatorius paverčia aukščiau pateiktą teiginį į: Integer x=Integer.valueOf(200) . Tai žinoma kaip Autoboksas . Primityvioji sveikojo skaičiaus reikšmė 200 paverčiama objektu.
(Norėdami suprasti automatinį dėžutę ir išpakavimą, patikrinkite čia: )
- x nurodo 200, kuris yra konstantų erdvėje. Žr. 1 pav.
1 pav
x = 300
- Autoboxing yra dar kartą, nes x yra sveikųjų skaičių klasės objektas, kuris yra tiesiogiai inicijuotas.
- Pastaba: Tiesiogiai inicijuoto objekto (x) negalima modifikuoti, nes jis yra konstanta. Kai bandome modifikuoti objektą nukreipdami į naują konstantą (300), senoji konstanta (200) bus krūvos atmintyje, bet objektas nukreips į naują konstantą.
- x nurodo 300, kuris yra konstantų erdvėje. Žr. 2 pav.
2 pav
x = 10
- Pastaba: Pagal numatytuosius nustatymus reikšmėms nuo -128 iki 127, metodas Integer.valueOf() nesukurs naujo sveikojo skaičiaus egzemplioriaus. Jis grąžina vertę iš talpyklos.
- x taškų 10, kuris yra talpykloje.
3 pav
Jei kitą kartą priskirsime x = 200 arba x = 300, tai nurodys reikšmę 200 arba 300, kuri jau yra konstantų erdvėje. Jei priskiriame x reikšmes, kurios nėra šios dvi reikšmės, tada sukuriama nauja konstanta.
(Norėdami geriau suprasti, žr. sveikųjų skaičių įpakavimo klasių palyginimo temą)
2 tipas: dinamiškas inicijavimas:
Sveikųjų skaičių klasės objektas, kuris nėra konstanta, bus sukurtas už konstantų erdvės ribų. Jis taip pat sukuria sveikojo skaičiaus konstantą konstantų erdvėje. Kintamasis bus nukreiptas į sveikojo skaičiaus objektą, o ne į sveikojo skaičiaus konstantą.
Pavyzdys:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization
Sveikasis skaičius a = naujas sveikasis skaičius (250)
- 250 sukuriama konstantų erdvėje ir už jos ribų. Kintamasis „a“ nurodys reikšmę, kuri yra už konstantų erdvės ribų. Žr. 4 pav.
4 pav
a = 350;
- Po automatinio įjungimo „a“ rodys 350. Žr. 5 pav.
5 pav
Jei kitą kartą priskirsime a = 250, jis nenurodys į jau esantį objektą su ta pačia verte, jis sukurs naują objektą.
Nuorodos: Oficiali Java dokumentacija