Java.lang.Integer-Klasse in Java
Die Integer-Klasse ist eine Wrapper-Klasse für den primitiven Typ int, die mehrere Methoden enthält, um effektiv mit einem int-Wert umzugehen, z. B. ihn in eine String-Darstellung umzuwandeln und umgekehrt. Ein Objekt der Integer-Klasse kann einen einzelnen int-Wert enthalten.
Konstrukteure:
- Ganzzahl(int b): Erstellt ein Integer-Objekt, das mit dem angegebenen Wert initialisiert wird.
Syntax:
public Integer(int b)
Parameter:
b : value with which to initialize
- Ganzzahl(String s): Erstellt ein Integer-Objekt, das mit dem durch die Zeichenfolgendarstellung bereitgestellten int-Wert initialisiert wird. Als Standardbasis wird 10 angenommen.
Syntax:
public Integer(String s) throws NumberFormatException
Parameter:
s : string representation of the int value
Würfe:
NumberFormatException : If the string provided does not represent any int value.
Methoden:
1. toString() : Gibt die Zeichenfolge zurück, die dem int-Wert entspricht.
Syntax:
public String toString(int b)
Parameter:
b : int value for which string representation required.
2. toHexString() : Gibt die Zeichenfolge zurück, die dem int-Wert in hexadezimaler Form entspricht, d. h. es wird eine Zeichenfolge zurückgegeben, die den int-Wert in Hexadezimalzeichen darstellt – [0-9][a-f]
Syntax:
public String toHexString(int b)
Parameter:
b : int value for which hex string representation required.
3. toOctalString() : Gibt die Zeichenfolge zurück, die dem int-Wert in oktaler Form entspricht, d. h. es wird eine Zeichenfolge zurückgegeben, die den int-Wert in oktalen Zeichen darstellt – [0-7]
Syntax:
public String toOctalString(int b)
Parameter:
b : int value for which octal string representation required.
4. toBinaryString() : Gibt die Zeichenfolge zurück, die dem int-Wert in binären Ziffern entspricht, d. h. es wird eine Zeichenfolge zurückgegeben, die den int-Wert in hexadezimalen Zeichen darstellt – [0/1]
Syntax:
public String toBinaryString(int b)
Parameter:
b : int value for which binary string representation required.
5. valueOf() : gibt das Integer-Objekt zurück, das mit dem angegebenen Wert initialisiert wurde.
Syntax:
public static Integer valueOf(int b)
Parameter:
b : a int value
- valueOf(String val,int radix) : Eine weitere überladene Funktion, die eine ähnliche Funktion wie new Integer(Integer.parseInteger(val,radix)) bereitstellt.
Syntax:
public static Integer valueOf(String val, int radix) throws NumberFormatException
Parameter:
val : String to be parsed into int value radix : radix to be used while parsing
Würfe:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- valueOf(String val) : Eine weitere überladene Funktion, die eine ähnliche Funktion wie new Integer(Integer.parseInt(val,10)) bereitstellt.
Syntax:
public static Integer valueOf(String s) throws NumberFormatException
Parameter:
s : a String object to be parsed as int
Würfe:
NumberFormatException : if String cannot be parsed to a int value in given radix.
6. parseInt() : gibt einen int-Wert zurück, indem die Zeichenfolge in der bereitgestellten Basis analysiert wird. Unterscheidet sich von valueOf(), da es einen primitiven int-Wert zurückgibt und valueOf() ein Integer-Objekt zurückgibt.
Syntax:
public static int parseInt(String val, int radix) throws NumberFormatException
Parameter:
val : String representation of int radix : radix to be used while parsing
Würfe:
NumberFormatException : if String cannot be parsed to a int value in given radix.
- Eine weitere überladene Methode, die nur String als Parameter enthält. Radix ist standardmäßig auf 10 gesetzt.
Syntax:
public static int parseInt(String val) throws NumberFormatException
Parameter:
val : String representation of int
Würfe:
NumberFormatException : if String cannot be parsed to a int value in given radix.
7. getInteger(): Gibt das Integer-Objekt zurück, das den mit der angegebenen Systemeigenschaft verknüpften Wert darstellt, oder null, wenn es nicht existiert.
Syntax:
public static Integer getInteger(String prop)
Parameter:
prop : System property
- Eine weitere überladene Methode, die das zweite Argument zurückgibt, wenn die Eigenschaft nicht vorhanden ist, d. h. sie gibt nicht Null, sondern einen vom Benutzer bereitgestellten Standardwert zurück.
Syntax:
public static Integer getInteger(String prop, int val)
Parameter:
prop : System property val : value to return if property does not exist.
- Eine weitere überladene Methode, die den Wert entsprechend dem zurückgegebenen Wert analysiert. Das heißt, wenn der zurückgegebene Wert mit # beginnt, wird er als Hexadezimalwert analysiert. Wenn er mit 0 beginnt, wird er als Oktalwert analysiert, andernfalls als Dezimalwert.
Syntax:
public static Integer getInteger(String prop, Integer val)
Parameter:
prop : System property val : value to return if property does not exist.
8. decode() : Gibt ein Integer-Objekt zurück, das den dekodierten Wert der bereitgestellten Zeichenfolge enthält. Die angegebene Zeichenfolge muss die folgende Form haben, andernfalls wird eine NumberFormatException ausgelöst:
Dezimalzahl (Vorzeichen)Dezimalzahl
Hex- (Sign)0xHex_Digits
Hex- (Sign)0XHex_Digits
Octal- (Sign)0″Octal_Digits
Syntax:
public static Integer decode(String s) throws NumberFormatException
Parameter:
s : encoded string to be parsed into int val
Würfe:
NumberFormatException : If the string cannot be decoded into a int value
9. rotateLeft() : Gibt ein primitives int zurück, indem die verbleibenden Bits um den angegebenen Abstand in Zweierkomplementform des angegebenen Werts gedreht werden. Beim Drehen nach links wird das höchstwertige Bit auf die rechte Seite oder die niedrigstwertige Position verschoben, d. h. es findet eine zyklische Bewegung der Bits statt. Ein negativer Abstand bedeutet Rechtsdrehung.
Syntax:
public static int rotateLeft(int val, int dist)
Parameter:
val : int value to be rotated dist : distance to rotate
10. rotateRight() : Gibt ein primitives int zurück, indem die Bits um den angegebenen Abstand in der Zweierkomplementform des angegebenen Werts nach rechts gedreht werden. Beim Drehen nach rechts wird das niedrigstwertige Bit auf die linke Seite bzw. die höchstwertige Position verschoben, d. h. es findet eine zyklische Bewegung der Bits statt. Ein negativer Abstand bedeutet eine Linksdrehung.
Syntax:
public static int rotateRight(int val, int dist)
Parameter:
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> ));> > }> }> |
Ausgabe:
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() : gibt einen Bytewert zurück, der diesem Integer-Objekt entspricht.
Syntax:
public byte byteValue()
12. shortValue() : gibt einen kurzen Wert zurück, der diesem Integer-Objekt entspricht.
Syntax:
public short shortValue()
13. intValue() : gibt einen int-Wert zurück, der diesem Integer-Objekt entspricht.
Syntax:
public int intValue()
13. longValue() : gibt einen langen Wert zurück, der diesem Integer-Objekt entspricht.
Syntax:
public long longValue()
14. doubleValue() : gibt einen Double-Wert zurück, der diesem Integer-Objekt entspricht.
Syntax:
public double doubleValue()
15. floatValue() : gibt einen Float-Wert zurück, der diesem Integer-Objekt entspricht.
Syntax:
public float floatValue()
16. hashCode() : gibt den Hashcode zurück, der diesem Integer-Objekt entspricht.
Syntax:
public int hashCode()
17. bitcount() : Gibt die Anzahl der gesetzten Bits im Zweierkomplement der angegebenen Ganzzahl zurück.
Syntax:
public static int bitCount(int i)
Parameter:
i : int value whose set bits to count
18. numberOfLeadingZeroes() : Gibt die Anzahl der 0-Bits vor dem höchsten 1-Bit in Zweierkomplementform des Werts zurück, d. h. wenn die Zahl in Zweierkomplementform 0000 1010 0000 0000 ist, würde diese Funktion 4 zurückgeben.
Syntax:
public static int numberofLeadingZeroes(int i)
Parameter:
i : int value whose leading zeroes to count in twos complement form
19. numberOfTrailingZeroes() : Gibt die Anzahl der 0-Bits nach dem letzten 1-Bit in Zweierkomplementform des Werts zurück, d. h. wenn die Zahl in Zweierkomplementform 0000 1010 0000 0000 ist, würde diese Funktion 9 zurückgeben.
Syntax:
public static int numberofTrailingZeroes(int i)
Parameter:
i : int value whose trailing zeroes to count in twos complement form
20.highestOneBit() : Gibt einen Wert mit höchstens einem einzigen Bit an der Position des höchsten Bits im angegebenen Wert zurück. Gibt 0 zurück, wenn der angegebene Wert 0 ist, das heißt, wenn die Zahl 0000 0000 0000 1111 ist, dann gibt diese Funktion 0000 0000 0000 1000 zurück (höchstens ein Bit in der angegebenen Zahl).
Syntax:
public static int highestOneBit(int i)
Parameter:
i : int value
21. LowestOneBit() : Gibt einen Wert mit höchstens einem einzelnen Bit an der Position des niedrigsten Bits im angegebenen Wert zurück. Gibt 0 zurück, wenn der angegebene Wert 0 ist, das heißt, wenn die Zahl 0000 0000 0000 1111 ist, dann gibt diese Funktion 0000 0000 0000 0001 zurück (höchstens ein Bit in der angegebenen Zahl).
Syntax:
public static int LowestOneBit(int i)
Parameter:
i : int value
22. equal() : Wird verwendet, um die Gleichheit zweier Integer-Objekte zu vergleichen. Diese Methode gibt true zurück, wenn beide Objekte denselben int-Wert enthalten. Sollte nur verwendet werden, wenn die Gleichheit überprüft wird. In allen anderen Fällen sollte die Methode „compareTo“ bevorzugt werden.
Syntax:
public boolean equals(Object obj)
Parameter:
obj : object to compare with
23. CompareTo() : Wird verwendet, um zwei Integer-Objekte auf numerische Gleichheit zu vergleichen. Dies sollte beim Vergleich zweier Ganzzahlwerte auf numerische Gleichheit verwendet werden, da hierdurch zwischen kleineren und größeren Werten unterschieden würde. Gibt einen Wert kleiner als 0,0 zurück, einen Wert größer 0 für kleiner als, gleich und größer als.
Syntax:
public int compareTo(Integer b)
Parameter:
b : Integer object to compare with
24. vergleichen() : Wird verwendet, um zwei primitive int-Werte auf numerische Gleichheit zu vergleichen. Da es sich um eine statische Methode handelt, kann sie verwendet werden, ohne dass ein Integer-Objekt erstellt werden muss.
Syntax:
public static int compare(int x,int y)
Parameter:
x : int value y : another int value
25. sign() : gibt -1 für negative Werte, 0 für 0 und +1 für Werte größer als 0 zurück.
Syntax:
public static int signum(int val)
Parameter:
val : int value for which signum is required.
26. reverse() : Gibt einen primitiven int-Wert zurück, der die Reihenfolge der Bits in der Zweierkomplementform des angegebenen int-Werts umkehrt.
Syntax:
public static int reverseBytes(int val)
Parameter:
val : int value whose bits to reverse in order.
27. reverseBytes() : Gibt einen primitiven int-Wert zurück, der die Reihenfolge der Bytes im Zweierkomplement des angegebenen int-Werts umkehrt.
Syntax:
public static int reverseBytes(int val)
Parameter:
val : int value whose bits to reverse in order.
28. static int vergleichenUnsigned(int x, int y) : Diese Methode vergleicht zwei int-Werte numerisch und behandelt die Werte als vorzeichenlos.
Syntax:
public static int compareUnsigned(int x, int y)
29. static int DivideUnsigned(int Dividend, Int Divisor) : Diese Methode gibt den vorzeichenlosen Quotienten der Division des ersten Arguments durch das zweite zurück, wobei jedes Argument und das Ergebnis als vorzeichenloser Wert interpretiert werden.
Syntax:
public static int divideUnsigned(int dividend, int divisor)
30. static int max(int a, int b) : Diese Methode gibt den größeren von zwei int-Werten zurück, als würde sie Math.max aufrufen.
Syntax:
public static int max(int a, int b)
31. static int min(int a, int b) : Diese Methode gibt den kleineren von zwei int-Werten zurück, als ob sie Math.min aufrufen würde.
Syntax:
public static int min(int a, int b)
32. static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Diese Methode analysiert das CharSequence-Argument als vorzeichenlose Ganzzahl in der angegebenen Basis, beginnend beim angegebenen beginIndex und erweitert bis endIndex – 1.
Syntax:
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
33. static int parseUnsignedInt(String s) : Diese Methode analysiert das Zeichenfolgenargument als vorzeichenlose Dezimalzahl.
Syntax:
public static int parseUnsignedInt(String s) throws NumberFormatException
34. static int parseUnsignedInt(String s, int radix) : Diese Methode analysiert das Zeichenfolgenargument als vorzeichenlose Ganzzahl in der durch das zweite Argument angegebenen Basis.
Syntax:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException
35. statischer int-RestUnsigned(int-Dividende, int-Divisor) : Diese Methode gibt den vorzeichenlosen Rest der Division des ersten Arguments durch das zweite zurück, wobei jedes Argument und das Ergebnis als vorzeichenloser Wert interpretiert werden.
Syntax:
public static int remainderUnsigned(int dividend, int divisor)
36. statische int-Summe (int a, int b) : Diese Methode addiert zwei ganze Zahlen gemäß dem +-Operator.
Syntax:
public static int sum(int a, int b)
37. static long toUnsignedLong(int x) : Diese Methode wandelt das Argument durch eine vorzeichenlose Konvertierung in ein Long-Argument um.
Syntax:
public static long toUnsignedLong(int x)
38. statischer String toUnsignedString(int i) : Diese Methode gibt eine Zeichenfolgendarstellung des Arguments als vorzeichenlosen Dezimalwert zurück.
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);> > }> }> |
Ausgabe :
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
Initialisierung der Integer-Wrapper-Klasse in Java:
Typ 1: Direkt initialisieren:
Ein konstantes Objekt der Integer-Klasse wird innerhalb des Konstantenraums im Heap-Speicher erstellt. Platz für Konstanten: Zum besseren Verständnis muss man sich nur vorstellen, dass im Heap-Speicher Platz für Konstanten ist.
Beispiel:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again
Ganzzahl x = 200
- Der Compiler wandelt die obige Anweisung in Folgendes um: Ganzzahl x=Integer.valueOf(200) . Dies ist bekannt als Autoboxen . Der primitive ganzzahlige Wert 200 wird in ein Objekt umgewandelt.
(Um Autoboxing und Unboxing zu verstehen, klicken Sie hier: )
- x zeigt auf 200, das im Raum der Konstanten vorhanden ist. Siehe Abb. 1.
Abb. 1
x = 300
- Das Autoboxing wird erneut durchgeführt, da x ein Integer-Klassenobjekt ist, das direkt initialisiert wird.
- Notiz: Das direkt initialisierte Objekt (x) kann nicht geändert werden, da es eine Konstante ist. Wenn wir versuchen, das Objekt zu ändern, indem wir auf eine neue Konstante (300) zeigen, ist die alte Konstante (200) im Heapspeicher vorhanden, das Objekt zeigt jedoch auf die neue Konstante.
- x zeigt auf 300, das im Raum der Konstanten vorhanden ist. Siehe Abb. 2.
Abb. 2
x = 10
- Notiz: Standardmäßig erstellt die Methode Integer.valueOf() für die Werte -128 bis 127 keine neue Instanz von Integer. Es gibt einen Wert aus seinem Cache zurück.
- x Punkte 10, die im Cache vorhanden sind.
Abb. 3
Wenn wir das nächste Mal x = 200 oder x=300 zuweisen, zeigt dies auf den Wert 200 oder 300, der bereits im Konstantenraum vorhanden ist. Wenn wir x andere Werte als diese beiden Werte zuweisen, wird eine neue Konstante erstellt.
(Schauen Sie sich zum besseren Verständnis das Thema zum Vergleich der Integer-Wrapper-Klasse an.)
Typ 2: Dynamische Initialisierung:
Ein Objekt der Integer-Klasse, das keine Konstante ist, wird außerhalb des Konstantenraums erstellt. Außerdem wird eine Integer-Konstante innerhalb des Konstantenraums erstellt. Die Variable zeigt auf das Integer-Objekt und nicht auf die Integer-Konstante.
Beispiel:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization
Ganzzahl a = neue Ganzzahl (250)
- 250 entsteht innerhalb und außerhalb des Konstantenraums. Die Variable „a“ zeigt auf den Wert, der außerhalb des Konstantenraums liegt. Siehe Abb. 4.
Abb. 4
a = 350;
- Nach dem Autoboxing zeigt „a“ auf 350. Siehe Abb. 5.
Abb. 5
Wenn wir das nächste Mal a = 250 zuweisen, zeigt es nicht auf das bereits vorhandene Objekt mit demselben Wert, sondern erstellt ein neues Objekt.
Verweise: Offizielle Java-Dokumentation