Java.lang.Integer-klasse i Java
Heltallsklasse er en innpakningsklasse for den primitive typen int som inneholder flere metoder for effektivt å håndtere en int-verdi som å konvertere den til en strengrepresentasjon, og omvendt. Et objekt av Integer-klassen kan inneholde en enkelt int-verdi.
Konstruktører:
- Heltall(int b): Oppretter et heltallsobjekt initialisert med verdien som er oppgitt.
Syntaks:
public Integer(int b)
Parametere:
b : value with which to initialize
- Heltall(streng s): Oppretter et heltallsobjekt initialisert med int-verdien gitt av strengrepresentasjon. Standard radix er tatt til å være 10.
Syntaks:
public Integer(String s) throws NumberFormatException
Parametere:
s : string representation of the int value
Kaster:
NumberFormatException : If the string provided does not represent any int value.
Metoder:
1. toString() : Returnerer strengen som tilsvarer int-verdien.
Syntaks:
public String toString(int b)
Parametere:
b : int value for which string representation required.
2. toHexString() : Returnerer strengen som tilsvarer int-verdien i heksadesimal form, det vil si at den returnerer en streng som representerer int-verdien i heksadesimale tegn-[0-9][a-f]
Syntaks:
public String toHexString(int b)
Parametere:
b : int value for which hex string representation required.
3. toOctalString() : Returnerer strengen som tilsvarer int-verdien i oktal form, det vil si at den returnerer en streng som representerer int-verdien i oktale tegn-[0-7]
Syntaks:
public String toOctalString(int b)
Parametere:
b : int value for which octal string representation required.
4. toBinaryString() : Returnerer strengen som tilsvarer int-verdien i binære sifre, det vil si at den returnerer en streng som representerer int-verdien i heksadesimale tegn-[0/1]
Syntaks:
public String toBinaryString(int b)
Parametere:
b : int value for which binary string representation required.
5. verdiAv() : returnerer heltallsobjektet initialisert med verdien oppgitt.
Syntaks:
public static Integer valueOf(int b)
Parametere:
b : a int value
- valueOf(String val,int radix) : En annen overbelastet funksjon som gir funksjon som ligner på nytt Integer(Integer.parseInteger(val,radix))
Syntaks:
public static Integer valueOf(String val, int radix) throws NumberFormatException
Parametere:
val : String to be parsed into int value radix : radix to be used while parsing
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- valueOf(String val) : En annen overbelastet funksjon som gir funksjon som ligner på nytt heltall(Integer.parseInt(val,10))
Syntaks:
public static Integer valueOf(String s) throws NumberFormatException
Parametere:
s : a String object to be parsed as int
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.
6. parseInt() : returnerer int-verdi ved å analysere strengen i radix gitt. Skiller seg fra valueOf() ettersom den returnerer en primitiv int-verdi og valueOf() returnerer Integer-objekt.
Syntaks:
public static int parseInt(String val, int radix) throws NumberFormatException
Parametere:
val : String representation of int radix : radix to be used while parsing
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- En annen overbelastet metode som bare inneholder streng som parameter, radix er som standard satt til 10.
Syntaks:
public static int parseInt(String val) throws NumberFormatException
Parametere:
val : String representation of int
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.
7. getInteger(): returnerer integer-objektet som representerer verdien assosiert med den gitte systemegenskapen eller null hvis den ikke eksisterer.
Syntaks:
public static Integer getInteger(String prop)
Parametere:
prop : System property
- En annen overbelastet metode som returnerer det andre argumentet hvis egenskapen ikke eksisterer, det vil si at den ikke returnerer null, men en standardverdi levert av brukeren.
Syntaks:
public static Integer getInteger(String prop, int val)
Parametere:
prop : System property val : value to return if property does not exist.
- En annen overbelastet metode som analyserer verdien i henhold til verdien som returneres, det vil si hvis verdien som returneres starter med #, blir den analysert som heksadesimal, hvis starter med 0, blir den analysert som oktal, ellers desimal.
Syntaks:
public static Integer getInteger(String prop, Integer val)
Parametere:
prop : System property val : value to return if property does not exist.
8. dekode() : returnerer et heltallsobjekt som inneholder den dekodede verdien til strengen som er oppgitt. Den angitte strengen må ha følgende form, ellers vil NumberFormatException bli kastet-
Desimal- (Sign)Desimal_Tall
Hex- (Sign)0xHex_Digits
Hex- (Sign) 0XHex_Digits
Oktal-(tegn)0″Octal_Digits
Syntaks:
public static Integer decode(String s) throws NumberFormatException
Parametere:
s : encoded string to be parsed into int val
Kaster:
NumberFormatException : If the string cannot be decoded into a int value
9. roter venstre() : Returnerer en primitiv int ved å rotere bitene igjen etter gitt avstand i tos komplementform av verdien gitt. Når du roterer til venstre, flyttes den mest signifikante biten til høyre side, eller minst signifikante posisjon, dvs. syklisk bevegelse av bits finner sted. Negativ avstand betyr høyrerotasjon.
Syntaks:
public static int rotateLeft(int val, int dist)
Parametere:
val : int value to be rotated dist : distance to rotate
10. roterHøyre() : Returnerer en primitiv int ved å rotere bitene rett med gitt avstand i to-komplementformen til verdien gitt. Når du roterer til høyre, flyttes den minst signifikante biten til venstre side, eller den mest signifikante posisjonen, dvs. syklisk bevegelse av bits finner sted. Negativ avstand betyr venstrerotasjon.
Syntaks:
public static int rotateRight(int val, int dist)
Parametere:
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> ));> > }> }> |
Produksjon:
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() : returnerer en byteverdi som tilsvarer dette heltallsobjektet.
Syntaks:
public byte byteValue()
12. shortValue() : returnerer en kort verdi som tilsvarer dette heltallsobjektet.
Syntaks:
public short shortValue()
13. intValue() : returnerer en int-verdi som tilsvarer dette heltallsobjektet.
Syntaks:
public int intValue()
13. longValue() : returnerer en lang verdi som tilsvarer dette heltallsobjektet.
Syntaks:
public long longValue()
14. doubleValue() : returnerer en dobbel verdi som tilsvarer dette heltallsobjektet.
Syntaks:
public double doubleValue()
15. floatValue() : returnerer en flytende verdi som tilsvarer dette heltallsobjektet.
Syntaks:
public float floatValue()
16. hashCode() : returnerer hashkoden som tilsvarer dette heltallsobjektet.
Syntaks:
public int hashCode()
17. bitcount() : Returnerer antall settbiter i to-komplement av heltallet som er gitt.
Syntaks:
public static int bitCount(int i)
Parametere:
i : int value whose set bits to count
18. numberOfLeadingZeroes() : Returnerer antall 0 biter foran den høyeste 1 bit i to-komplementform av verdien, dvs. hvis tallet i to-komplementform er 0000 1010 0000 0000, vil denne funksjonen returnere 4.
Syntaks:
public static int numberofLeadingZeroes(int i)
Parametere:
i : int value whose leading zeroes to count in twos complement form
19. numberOfTrailingZeroes() : Returnerer antall 0 biter etter den siste 1-biten i to-komplementform av verdien, dvs. hvis tallet i to-komplementform er 0000 1010 0000 0000, vil denne funksjonen returnere 9.
Syntaks:
public static int numberofTrailingZeroes(int i)
Parametere:
i : int value whose trailing zeroes to count in twos complement form
20. høyesteOneBit() : Returnerer en verdi med høyst en enkelt en bit, i posisjonen til den høyeste en bit i den oppgitte verdien. Returnerer 0 hvis verdien som er gitt er 0, det vil si hvis tallet er 0000 0000 0000 1111, så returnerer denne funksjonen 0000 0000 0000 1000 (en høyst en bit i det gitte tallet)
Syntaks:
public static int highestOneBit(int i)
Parametere:
i : int value
21. LowestOneBit() : Returnerer en verdi med høyst en enkelt en bit, i posisjonen til den laveste en bit i den oppgitte verdien. Returnerer 0 hvis verdien som er gitt er 0, det vil si hvis tallet er 0000 0000 0000 1111, så returnerer denne funksjonen 0000 0000 0000 0001 (en høyst én bit i det gitte tallet)
Syntaks:
public static int LowestOneBit(int i)
Parametere:
i : int value
22. lik(): Brukes til å sammenligne likheten mellom to heltallsobjekter. Denne metoden returnerer true hvis begge objektene inneholder samme int-verdi. Bør kun brukes hvis det kontrolleres for likhet. I alle andre tilfeller bør compareTo-metoden foretrekkes.
Syntaks:
public boolean equals(Object obj)
Parametere:
obj : object to compare with
23. compareTo() : Brukes til å sammenligne to heltallsobjekter for numerisk likhet. Dette bør brukes når du sammenligner to heltallsverdier for numerisk likhet, da det vil skille mellom mindre og større verdier. Returnerer en verdi mindre enn 0,0, en verdi større enn 0 for mindre enn, lik og større enn.
Syntaks:
public int compareTo(Integer b)
Parametere:
b : Integer object to compare with
24. sammenlign() : Brukes til å sammenligne to primitive int-verdier for numerisk likhet. Siden det er en statisk metode, kan den derfor brukes uten å lage noe heltallsobjekt.
Syntaks:
public static int compare(int x,int y)
Parametere:
x : int value y : another int value
25. tegn() : returnerer -1 for negative verdier, 0 for 0 og +1 for verdier større enn 0.
Syntaks:
public static int signum(int val)
Parametere:
val : int value for which signum is required.
26. reverse() : returnerer en primitiv int-verdi som reverserer rekkefølgen av biter i tos komplementform av den gitte int-verdien.
Syntaks:
public static int reverseBytes(int val)
Parametere:
val : int value whose bits to reverse in order.
27. reverseBytes() : returnerer en primitiv int-verdi som reverserer rekkefølgen av byte i tos komplementform av den gitte int-verdien.
Syntaks:
public static int reverseBytes(int val)
Parametere:
val : int value whose bits to reverse in order.
28. static int compareUnsigned(int x, int y) : Denne metoden sammenligner to int-verdier og behandler verdiene numerisk som usignerte.
Syntaks:
public static int compareUnsigned(int x, int y)
29. statisk int divideUnsigned(int utbytte, int divisor) : Denne metoden returnerer kvotienten uten fortegn ved å dele det første argumentet med det andre, der hvert argument og resultatet tolkes som en verdi uten fortegn.
Syntaks:
public static int divideUnsigned(int dividend, int divisor)
30. statisk int max(int a, int b) : Denne metoden returnerer den største av to int-verdier som ved å kalle Math.max.
Syntaks:
public static int max(int a, int b)
31. statisk int min(int a, int b) : Denne metoden returnerer den minste av to int-verdier som ved å kalle Math.min.
Syntaks:
public static int min(int a, int b)
32. statisk int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Denne metoden analyserer CharSequence-argumentet som en usignert int i den spesifiserte radiksen, som begynner med den spesifiserte beginIndex og strekker seg til endIndex – 1.
Syntaks:
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
33. statisk int parseUnsignedInt(String s) : Denne metoden analyserer strengargumentet som et desimaltall uten fortegn.
Syntaks:
public static int parseUnsignedInt(String s) throws NumberFormatException
34. statisk int parseUnsignedInt(String s, int radix) : Denne metoden analyserer strengargumentet som et heltall uten fortegn i radiksen spesifisert av det andre argumentet.
Syntaks:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException
35. statisk int restUnsigned(int utbytte, int divisor) : Denne metoden returnerer den usignerte resten fra å dele det første argumentet med det andre der hvert argument og resultatet tolkes som en usignert verdi.
Syntaks:
public static int remainderUnsigned(int dividend, int divisor)
36. statisk int sum(int a, int b) : Denne metoden legger sammen to heltall i henhold til +-operatoren.
Syntaks:
public static int sum(int a, int b)
37. statisk lang tilUnsignedLong(int x) : Denne metoden konverterer argumentet til en lang ved en usignert konvertering.
Syntaks:
public static long toUnsignedLong(int x)
38. statisk streng tilUnsignedString(int i) : Denne metoden returnerer en strengrepresentasjon av argumentet som en desimalverdi uten fortegn.
Syntaks:
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);> > }> }> |
Utgang:
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
Initialisering av integer wrapper-klassen i Java:
Type 1: Initialiserer direkte:
Et konstant objekt av heltallsklassen vil bli opprettet i rommet til konstanter i haugminnet. Rom av konstanter: Det er bare å forestille seg for bedre forståelse at det er litt plass for konstanter i haugminnet.
Eksempel:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again
Heltall x = 200
- Kompilatoren konverterer setningen ovenfor til: Heltall x=Integer.valueOf(200) . Dette er kjent som Autoboksing . Den primitive heltallsverdien 200 konverteres til et objekt.
(For å forstå Autoboxing & Unboxing sjekk her: )
- x peker på 200 som er tilstede i rommet av konstanter. Se fig. 1.
Figur 1
x = 300
- Autoboksing gjøres igjen fordi x er et Integer-klasseobjekt som initialiseres direkte.
- Merk: Det direkte initialiserte objektet (x) kan ikke endres siden det er en konstant. Når vi prøver å modifisere objektet ved å peke på en ny konstant(300), vil den gamle konstanten(200) være tilstede i haugminnet, men objektet vil peke på den nye konstanten.
- x peker på 300 som er tilstede i rommet av konstanter. Se fig. 2.
Fig. 2
x = 10
- Merk: Som standard for verdiene -128 til 127 vil Integer.valueOf()-metoden ikke opprette en ny forekomst av Integer. Den returnerer en verdi fra hurtigbufferen.
- x poeng 10 som er tilstede i cache.
Fig. 3
Hvis vi tilordner x = 200 eller x=300 neste gang, vil det peke på verdien 200 eller 300 som allerede er tilstede i rom av konstanter. Hvis vi tilordner andre verdier til x enn disse to verdiene, skaper det en ny konstant.
(Sjekk emnet for sammenligning av integer wrapper klasse for bedre forståelse)
Type 2: Initialisere dynamisk:
Et Integer-klasseobjekt som ikke er en konstant vil bli opprettet utenfor rommet til konstanter. Det skaper også en heltallskonstant inne i rommet til konstanter. Variabelen vil peke på heltallsobjektet og ikke heltallskonstanten.
Eksempel:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization
Heltall a = nytt heltall(250)
- 250 skapes i og utenfor konstantenes rom. Variabel 'a' vil peke på verdien som er utenfor rommet til konstanter. Se fig. 4.
Fig. 4
a = 350;
- Etter autoboksing vil 'a' peke på 350. Se fig. 5.
Fig. 5
Hvis vi tilordner a = 250 neste gang, vil det ikke peke til objektet som allerede er tilstede med samme verdi, det vil opprette et nytt objekt.
Referanser: Offisiell Java-dokumentasjon