Integer class trong java

Integer class là một wrapper class của kiểu dữ liệu nguyên thủy int chứa nhiều method chúng ta thao tác hiệu quả hơn như chuyển số sang chuỗi và ngược lại etc.

Constructor

Khởi tạo một object Integer từ một số kiểu int.

public Integer(int b);

// Ví dụ
Integer i = new Integer(1);

Khởi tạo một object Integer từ chuỗi số

public Integer(String s) 

// Ví dụ
Integer i = new Integer("123")

Integer i = new Integer("12a") => NumberFormatException

Lưu ý nếu String không phải là một số nguyên thì chúng ta sẽ bị lỗi NumberFormatException.

Số Integer lớn nhất – bé nhất

Integer class còn cung cấp cho chúng ta 2 hằng số mà được sử dụng nhiều khi thao tác với kiểu dữ liệu int là giá trị lớn nhất và bé nhất.

Giá trị lớn nhất: Integer.MAX_VALUE (2147483647).

Giá trị bé nhất: Integer.MIN_VALUE (-2147483648)

Methods trong Integer class

Integer class thừa kế từ Number class nên ngoài các method intValue(), longValue(), doubleValue() etc thì Integer class còn cung cấp cho chúng ta rất nhiều method. Sau đây mình sẽ liệt kê một số method mà mình thường sử dụng trong quá trình code java:

1, toString(): Trả về String số tương ứng với giá trị int.

Syntax

public String toString()

Example

Integer number = new Integer(10);
System.out.println(number.toString()); // 10

2, toHexString(): Trả về String tương ứng với giá trị int ở hệ hexadecimal.

Syntax

public static String toHexString(int num)

Example

System.out.println(Integer.toHexString(100)); // 64

3, toOctalString(): Trả về chuỗi số tương ứng ở hệ octal

Syntax

public static String toOctalString(int i);

Example

System.out.println(Integer.toOctalString(100)); // 144

4, toBinaryString(): Trả về chuỗi số tương ứng ở hệ nhị phân.

Syntax

public static String toBinaryString(int i)

Example

System.out.println(Integer.toBinaryString(100)); // 1100100

5, valueOf(): Khởi tạo một object Integer từ giá trị int cung cấp. Nếu giá trị cung cấp không hợp lệ thì sẽ gây ra lỗi NumberFormatException.

Syntax

public static Integer valueOf(int i)

// or 

public static Integer valueOf(String s)

// or

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

Example

System.out.println(Integer.valueOf("100")); // 100

System.out.println(Integer.valueOf(100)); // 100

System.out.println(Integer.valueOf("01000000", 2)); // 64

System.out.println(Integer.valueOf("aaa")); // NumberFormatException

6, parseInt(): Trả về int value từ một chuỗi số được cung cấp. Nếu giá trị được cung cấp không hợp lệ gây ra lỗi NumberFormatException.

Syntax

public static int parseInt(String s)

// or

public static int parseInt(String s, int radix)

Example

System.out.println(Integer.parseInt("100")); // 100

System.out.println(Integer.parseInt("11110111", 2)); // 247

System.out.println(Integer.parseInt("aaa")); // NumberFormatException

7, equals(): So sánh bằng giữa 2 object Integer.

Syntax

public boolean equals(Object obj)

Example

Integer a = Integer.valueOf(100);

Integer b = Integer.valueOf(90);

Integer c = Integer.valueOf(100);

System.out.println(a.equals(b)); // false

System.out.println(a.equals(c)); // true

8, compareTo(): So sánh 2 object Integer. Trả về -1 nếu nhỏ hơn, 1 lớn hơn, 0 bằng.

Syntax

public int compareTo(Integer anotherInteger)

Example

Integer a = Integer.valueOf(100);

Integer b = Integer.valueOf(90);

Integer c = Integer.valueOf(100);

System.out.println(a.compareTo(b)); // 1

System.out.println(b.compareTo(a)); // -1

System.out.println(a.compareTo(c)); // 0

9, max(): Lấy số lớn nhất trong 2 số, nếu 2 số trùng nhau thì trả về một trong hai.

Syntax

public static int max(int a, int b)

Example

System.out.println(Integer.max(100, 90)); // 100

System.out.println(Integer.max(100, 100)); // 100

10, min(): Lấy số nhỏ nhất trong hai số, nếu 2 số bằng nhau lấy một trong hai.

Syntax

public static int min(int a, int b)

Example

System.out.println(Integer.min(100, 90)); // 90

System.out.println(Integer.min(100, 100)); // 100

11, sum(): Trả về tổng của 2 số nguyên.

Syntax

public static int sum(int a, int b)

Example

System.out.println(Integer.sum(100, 90)); // 190

Abstract method

Ngoài các method trên thì Integer class cũng implement các method của Number abstract class. Các method này sẽ giúp chúng ta chuyển giá trị kiểu int sang các kiểu dữ liệu khác như double, float, long để thao tác:

  1. public byte byteValue(): Trả về byte tương ứng của Integer object.
  2. public short shortValue(): Trả về short value tương ứng của Integer object.
  3. public int intValue(): Trả về int value tương ứng của Integer object.
  4. public long longValue(): Trả về long value tương ứng của Integer object.
  5. public double doubleValue(): Trả về double value tương ứng của Integer object.
  6. public float shortValue(): Trả về float value tương ứng của Integer object.

Ví dụ

public class Main {

    public static void main(String[] args) {

        Integer i = Integer.valueOf(1000);
        System.out.println("Byte value: " + i.byteValue());
        System.out.println("Short value: " + i.shortValue());
        System.out.println("Int value: " + i.intValue());
        System.out.println("Long value: " + i.longValue());
        System.out.println("Double value " + i.doubleValue());
        System.out.println("Float value: " + i.floatValue());

        double a = 5.5d;
        double d = i.doubleValue()/a;
        System.out.println(d);

        float b = 5.5f;
        float f = i.floatValue()/b;
        System.out.println(f);
    }
}

Output

Byte value: -24
Short value: 1000
Int value: 1000
Long value: 1000
Double value 1000.0
Float value: 1000.0
181.8181818181818
181.81818

Với rất nhiều method mà Integer class cung cấp  giúp chúng ta thao tác nhanh chóng với kiểu số nguyên int trong java. Thế nhưng không phải lúc nào cũng dùng Integer class thay cho kiểu int nguyên thuỷ đâu nhé.

for(Integer i = 0; i <= 100; i++) {
    System.out.println(i);
}

Ví dụ trên mình chỉ đang duyệt và in ra các số nguyên từ 0 đến 100. Việc mình dùng Integer là không hợp lý vì mục đích của mình sử dụng biến i như là một biến đếm, nếu chúng ta sử dụng Integer object thì java phải sử dụng cơ chế autoboxing, unboxing để chuyển đổi qua lại Integer với int, hơn nữa với object Integer tạo thì chắc hẳn nó sẽ ngốn bộ nhớ hơn đấy. 

Theo kinh nghiệm sử dụng int hay Integer của mình rất đơn giản, nếu thấy cần dùng đến method của instance lưu ý điểm này nhé không phải static method thì mình sẽ dùng Integer. 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x