Nội dung bài học
Biến trong Java
Trong java, biến là tên của vùng nhớ. Có 3 kiểu biến trong java, bao gồm biến local (biến địa phương), biến instance (biến toàn cục) và biến static.
Nội dung chính
Khai báo biến trong java
Cú pháp khai báo biến:
DataType varName [ = value] [, varName2] [ = value2]...;
Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.
Quy tắc đặt tên biến trong java:
- Chỉ được bắt đầu bằng một ký tự(chữ), hoặc một dấu gạch dưới(_), hoặc một ký tự dollar($)
- Tên biến không được chứa khoảng trắng
- Bắt đầu từ ký tự thứ hai, có thể dùng ký tự(chữ), dấu gạch dưới(_), hoặc ký tự dollar($)
- Không được trùng với các từ khóa
- Có phân biệt chữ hoa và chữ thường
Ví dụ về khai báo biến trong java:
1. Biến local trong java
- Biến local được khai báo trong các phương thức, hàm contructor hoặc trong các block.
- Biến local được tạo bên trong các phương thức, contructor, block và sẽ bị phá hủy khi kết thúc các phương thức, contructor và block.
- Không được sử dụng "access modifier" khi khai báo biến local.
- Các biến local được lưu trên vùng nhớ stack của bộ nhớ.
- Bạn cần khởi tạo giá trị mặc định cho biến local trước khi có thể sử dụng.
Ví dụ 1: Khởi tạo biến local:
package anhtester.bienvadulieu;
public class Bien {
public void sayHello() {
int n = 10; // Đây là biến local
System.out.println("Gia tri cua n la: " + n);
}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
Kết quả:
Gia tri cua n la: 10
Ví dụ 2: Không khởi tạo biến local:
public class Bien {
public void sayHello() {
int n; // Đây là biến local
System.out.println("Gia tri cua n la: " + n);
}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
Kết quả:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable n may not have been initialized
2. Biến instance (biến toàn cục) trong java
- Biến instance được khai báo trong một lớp(class), bên ngoài các phương thức, constructor và các block.
- Biến instance được lưu trong bộ nhớ heap.
- Biến instance được tạo khi một đối tượng được tạo bằng việc sử dụng từ khóa “new” và sẽ bị phá hủy khi đối tượng bị phá hủy.
- Biến instance có thể được sử dụng bởi các phương thức, constructor, block, ... Nhưng nó phải được sử dụng thông qua một đối tượng cụ thể.
- Bạn được phép sử dụng "access modifier" khi khai báo biến instance, mặc định là "default".
- Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó. Ví dụ nếu là kiểu int, short, byte thì giá trị mặc định là 0, kiểu double thì là 0.0d, ... Vì vậy, bạn sẽ không cần khởi tạo giá trị cho biến instance trước khi sử dụng.
- Bên trong class mà bạn khai báo biến instance, bạn có thể gọi nó trực tiếp bằng tên khi sử dụng ở khắp nới bên trong class đó.
Ví dụ về biến instance trong java:
package anhtester.bienvadulieu;
public class Sinhvien {
// biến instance "ten" kiểu String, có giá trị mặc định là null
public String ten;
// biến instance "tuoi" kiểu Integer, có giá trị mặc định là 0
private int tuoi;
// sử dụng biến ten trong một constructor
public Sinhvien(String ten) {
this.ten = ten;
}
// sử dụng biến tuoi trong phương thức setTuoi
public void setTuoi(int tuoi) {
this.tuoi = tuoi;
}
public void showStudent() {
System.out.println("Ten : " + ten);
System.out.println("Tuoi : " + tuoi);
}
public static void main(String args[]) {
Sinhvien sv = new Sinhvien("Nguyen Van A");
sv.setTuoi(21);
sv.showStudent();
}
}
Kết quả:
Ten : Nguyen Van A
Tuoi : 21
3. Biến static trong java
- Biến static được khai báo trong một class với từ khóa "static", phía bên ngoài các phương thức, constructor và block.
- Sẽ chỉ có duy nhất một bản sao của các biến static được tạo ra, dù bạn tạo bao nhiêu đối tượng từ lớp tương ứng.
- Biến static được lưu trữ trong bộ nhớ static riêng.
- Biến static được tạo khi chương trình bắt đầu chạy và chỉ bị phá hủy khi chương trình dừng.
- Giá trị mặc định của biến static phụ thuộc vào kiểu dữ liệu bạn khai báo tương tự biến instance.
- Biến static được truy cập thông qua tên của class chứa nó, với cú pháp: TenClass.tenBien.
- Trong class, các phương thức sử dụng biến static bằng cách gọi tên của nó khi phương thức đó cũng được khai báo với từ khóa "static".
Ví dụ về biến static trong java:
package anhtester.bienvadulieu;
public class Sinhvien {
// biến static 'ten'
public static String ten = "Nguyen Van A";
// biến static 'tuoi'
public static int tuoi = 21;
public static void main(String args[]) {
// Sử dụng biến static bằng cách gọi trực tiếp
System.out.println("Ten : " + ten);
// Sử dụng biến static bằng cách gọi thông qua tên class
System.out.println("Ten : " + Sinhvien.tuoi);
}
}
Kết quả:
Ten : Nguyen Van A
Ten : 21
Các kiểu dữ liệu trong java
Trong Java, các kiểu dữ liệu được chia thành hai loại:
- Các kiểu dữ liệu nguyên thủy
- Các kiểu dữ liệu đối tượng
Nội dung chính
1. Kiễu dữ liệu nguyên thủy
Java cung cấp các kiểu dữ liệu cơ bản như sau:
Kiểu dữ liệu | Mô tả |
---|---|
String | Dùng để lưu dữ liệu kiểu chuỗi. VD: "Automation Test", "Selenium",... Dạng này dùng rất nhiều. |
byte | Dùng để lưu dữ liệu kiểu số nguyên có kích thước một byte (8 bít). Phạm vi biểu diễn giá trị từ -128 đến 127. Giá trị mặc định là 0. |
char | Dùng để lưu dữ liệu kiểu kí tự hoặc số nguyên không âm có kích thước 2 byte (16 bít). Phạm vi biểu diễn giá trị từ 0 đến u\ffff. Giá trị mặc định là 0. |
boolean | Dùng để lưu dữ liệu chỉ có hai trạng thái đúng hoặc sai (độ lớn chỉ có 1 bít). Phạm vi biểu diễn giá trị là {“True”, “False”}. Giá trị mặc định là False. |
short | Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 2 byte (16 bít). Phạm vi biểu diễn giá trị từ - 32768 đến 32767. Giá trị mặc định là 0. |
int | Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 4 byte (32 bít). Phạm vi biểu diễn giá trị từ -2,147,483,648 đến 2,147,483,647. Giá trị mặc định là 0. |
long | Dùng để lưu dữ liệu có kiểu số nguyên có kích thước lên đến 8 byte. Giá trị mặc định là 0L. |
float | Dùng để lưu dữ liệu có kiểu số thực, kích cỡ 4 byte (32 bít). Giá trị mặc định là 0.0F. |
double | Dùng để lưu dữ liệu có kiểu số thực có kích thước lên đến 8 byte. Giá trị mặc định là 0.00D |
2. Kiểu dữ liệu đối tượng
Trong Java có 3 kiểu dữ liệu đối tượng:
Kiểu dữ liệu | Mô tả |
---|---|
Array | Một mảng của các dữ liệu cùng kiểu. |
class | Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức.. |
interface | Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp. |
Toán tử trong Java
Toán tử trong java là một ký hiệu được sử dụng để thực hiện một phép tính/chức năng nào đó. Java cung cấp các dạng toán tử sau:
- Toán tử số học
- Toán tử bit
- Toán tử quan hệ
- Toán tử logic
- Toán tử điều kiện
- Toán tử gán
Nội dung chính:
- Toán tử số học
- Toán tử Bit
- Các toán tử quan hệ
- Các toán tử logic
- Các toán tử điều kiện
- Toán tử gán
- Thứ tụ ưu tiên của các toán tử
- Thay đổi thứ tự ưu tiên của các toán tử
Toán tử số học
Các toán hạng của các toán tử số học phải ở dạng số. Các toán hạng kiểu boolean không sử dụng được, các toán hạng ký tự cho phép sử dụng loại toán tử này. Một vài kiểu toán tử được liệt kê trong bảng dưới đây.
Giả sử chúng ta có biến số nguyên a = 10 và b = 20.
Toán tử | Mô tả | Ví dụ |
---|---|---|
+ | Cộng Trả về giá trị là tổng của hai toán hạng |
a + b sẽ là 30 |
- | Trừ Trả về kết quả là hiệu của hai toán hạng. |
a - b sẽ là -10 |
* | Nhân Trả về giá trị là tích của hai toán hạng. |
a * b sẽ là 200 |
/ | Chia Trả về giá trị là thương của phép chia. |
b / a sẽ là 2 |
% | Phép lấy modul Giá trị trả về là phần dư của phép chia |
b % a sẽ là 0 |
++ | Tăng dần Tăng giá trị của biến lên 1. Ví dụ a++ tương đương với a = a + 1 |
a++ sẽ là 11 |
-- | Giảm dần Giảm giá trị của biến 1 đơn vị. Ví dụ a-- tương đương với a = a - 1 |
a-- sẽ là 9 |
+= | Cộng và gán giá trị Cộng các giá trị của toán hạng bên trái vào toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c += a tương đương c = c + a |
a += 2 sẽ là 12 |
-= | rừ và gán giá trị Trừ các giá trị của toán hạng bên trái vào toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c -= a tương đương với c = c - a |
a -= 2 sẽ là 8 |
*= | Nhân và gán Nhân các giá trị của toán hạng bên trái với toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c *= a tương đương với c = c*a |
a *= 2 sẽ là 20 |
/= | Chia và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c /= a tương đương với c = c/a |
a /= 2 sẽ là 5 |
%= | Lấy số dư và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán giá trị số dư vào toán hạng bên trái. Ví dụ c %= a tương đương với c = c%a |
a /= 8 sẽ là 2 |
Toán tử Bit
Các toán tử dạng bit cho phép chúng ta thao tác trên từng bit riêng biệt trong các kiểu dữ liệu nguyên thuỷ.
Toán tử | Mô tả |
---|---|
~ | Phủ định NOT Trả về giá trị phủ định của một bít. |
& | Toán tử AND Trả về giá trị là 1 nếu các toán hạng là 1 và 0 trong các trường hợp khác |
| | Toán tử OR Trả về giá trị là 1 nếu một trong các toán hạng là 1 và 0 trong các trường hợp khác. |
^ | Toán tử Exclusive OR Trả về giá trị là 1 nếu chỉ một trong các toán hạng là 1 và trả về 0 trong các trường hợp khác. |
>> | Dịch phải Chuyển toàn bộ các bít cuả một số sang phải một vị trí, giữ nguyên dấu của số âm. Toán hạng bên trái là số bị dịch còn số bên phải chỉ số vị trí mà các bít cần dịch. |
<< | Dịch trái Chuyển toàn bộ các bít cuả một số sang trái một vị trí, giữ nguyên dấu cuả số âm. Toán hạng bên trái là số bị dịch còn số bên phải chỉ số vị trí mà các bít cần dịch. |
Các toán tử quan hệ
Các toán tử quan hệ được sử dụng kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị Boolean (logic “true” hoặc “false”). Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Toán tử | Mô tả |
---|---|
== | So sánh bằng Toán tử này kiểm tra sự tương đương của hai toán hạng |
!= | So sánh khác Toán tử này kiểm tra sự khác nhau của hai toán hạng |
> | Lớn hơn Kiểm tra giá trị của toán hạng bên phải lớn hơn toán hạng bên trái hay không |
< | Nhỏ hơn Kiểm tra giá trị của toán hạng bên phải có nhỏ hơn toán hạng bên trái hay không |
>= | Lớn hơn hoặc bằng Kiểm tra giá trị của toán hạng bên phải có lớn hơn hoặc bằng toán hạng bên trái hay không |
<= | Nhỏ hơn hoặc bằng Kiểm tra giá trị của toán hạng bên phải có nhỏ hơn hoặc bằng toán hạng bên trái hay không |
Các toán tử logic
Các toán tử logic làm việc với các toán hạng Boolean. Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Toán tử | Mô tả |
---|---|
&& | Toán tử và (AND) Trả về một giá trị “Đúng” (True) nếu chỉ khi cả hai toán tử có giá trị “True” |
|| | Toán tử hoặc (OR) Trả về giá trị “True” nếu ít nhất một giá trị là True |
^ | Toán tử XOR Trả về giá trị True nếu và chỉ nếu chỉ một trong các giá trị là True, các trường hợp còn lại cho giá trị False (sai) |
! | Toán tử phủ định (NOT) Toán hạng đơn tử NOT. Chuyển giá trị từ True sang False và ngược lại. |
Các toán tử điều kiện
Toán tử điều kiện là một loại toán tử đặc biệt vì nó bao gồm ba thành phần cấu thành biểu thức điều kiện. Cú pháp:
<biểu thức 1> ? <biểu thức 2> : <biểu thức 3>;
- biểu thức 1: Biểu thức logic. Trả trả về giá trị True hoặc False
- biểu thức 2: Là giá trị trả về nếu <biểu thức="" 1="">xác định là True</biểu>
- biểu thức 3: Là giá trị trả về nếu <biểu thức="" 1="">xác định là False</biểu>
Ví dụ:
public class Test {
public static void main(String[] args) {
int a = 20;
int b = 3;
String s = (a % b == 0) ? "a chia het cho b" : "a khong chia het cho b";
System.out.println(s);
}
}
Kết quả:
a khong chia het cho b
Toán tử gán
Toán tử gán (=) dùng để gán một giá trị vào một biến và có thể gán nhiều giá trị cho nhiều biến cùng một lúc.
Ví dụ:
int var = 20;
int p,q,r,s;
p=q=r=s=var;
Trong ví dụ trên, đoạn lệnh sau gán một giá trị cho biến var và giá trị này lại được gán cho nhiều biến trên một dòng lệnh đơn.
Dòng lệnh cuối cùng được thực hiện từ phải qua trái. Đầu tiên giá trị ở biến var được gán cho ‘s’, sau đó giá trị của ‘s’ được gán cho ‘r’ và cứ tiếp như vậy.
Thứ tụ ưu tiên của các toán tử
Thứ tự ưu tiên quyết định trật tự thực hiện các toán tử trên các biểu thức. Bảng dưới đây liệt kê thứ tự thực hiện các toán tử trong Java
Toán tử | Mô tả |
---|---|
1 | Các toán tử đơn như +,-,++,-- |
2 | Các toán tử số học và các toán tử dịch như *,/,+,-,<<,>> |
3 | Các toán tử quan hệ như >,<,>=,<=,= =,!= |
4 | Các toán tử logic và Bit như &&,||,&,|,^ |
5 | Các toán tử gán như =,*=,/=,+=,-= |
Thay đổi thứ tự ưu tiên của các toán tử
Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc đơn ():
- Phần được giới hạn trong ngoặc đơn được thực hiện trước.
- Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong sẽ thực thi trước, sau đó đến các vòng phía ngoài.
- Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ nguyên tác dụng.
Ví dụ:
public class Test {
public static void main(String[] args) {
int a = 20;
int b = 5;
int c = 10;
System.out.println("a + b * c = " + (a + b * c));
System.out.println("(a + b) * c = " + ((a + b) * c));
System.out.println("a / b - c = " + (a / b - c));
System.out.println("a / (b - c) = " + (a / (b - c)));
}
}
Kết quả:
a + b * c = 70
(a + b) * c = 250
a / b - c = -6
a / (b - c) = -4
Mệnh đề if-else trong java
Mệnh đề if trong java được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Mệnh đề này trả về giá trị True hoặc False . Có các kiểu của mệnh đề if-else trong java như sau:
- Mệnh đề if
- Mệnh đề if-else
- Mệnh đề if-else-if
Mệnh đề if
Mệnh đề if được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Khối lệnh sau if được thực thi nếu giá trị của điều kiện là True
Cú pháp:
if (condition) {
// khối lệnh này thực thi
// nếu condition = true
}
Ví dụ:
public class Test {
public static void main(String[] args) {
int age = 20;
if (age > 18) {
System.out.print("Tuổi lớn hơn 18");
}
}
}
Kết quả:
Tuổi lớn hơn 18
Mệnh đề if-else
Mệnh đề if-else cũng kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện là True thì chỉ có khối lệnh sau if sẽ được thực hiện, nếu là False thì chỉ có khối lệnh sau else được thực hiện.
Cú pháp:
if (condition) {
// khối lệnh này được thực thi
// nếu condition = true
} else {
// khối lệnh này được thực thi
// nếu condition = false
}
Ví dụ:
public class Test {
public static void main(String[] args) {
int number = 13;
if (number % 2 == 0) {
System.out.println("Số " + number + " là số chẵn.");
} else {
System.out.println("Số " + number + " là số lẻ.");
}
}
}
Kết quả:
Số 13 là số lẻ.
Mệnh đề if-else-if
Mệnh đề if-else-if cũng kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện if là True thì chỉ có khối lệnh sau if sẽ được thực hiện. Nếu giá trị điều kiện if else nào là True thì chỉ có khối lệnh sau else if đó sẽ được thực hiện… Nếu tất cả điều kiện của if và else if là False thì chỉ có khối lệnh sau else sẽ được thực hiện.
Cú pháp:
if (condition1) {
// khối lệnh này được thực thi
// nếu condition1 là true
} else if (condition2) {
// khối lệnh này được thực thi
// nếu condition2 là true
} else if (condition3) {
// khối lệnh này được thực thi
// nếu condition3 là true
}
...
else {
// khối lệnh này được thực thi
// nếu tất cả những điều kiện trên là false
}
Ví dụ:
public class Test {
public static void main(String[] args) {
int marks = 65;
if (marks < 50) {
System.out.println("Tạch!");
} else if (marks >= 50 && marks < 60) {
System.out.println("Xếp loại D");
} else if (marks >= 60 && marks < 70) {
System.out.println("Xếp loại C");
} else if (marks >= 70 && marks < 80) {
System.out.println("Xếp loại B");
} else if (marks >= 80 && marks < 90) {
System.out.println("Xếp loại A");
} else if (marks >= 90 && marks < 100) {
System.out.println("Xếp loại A+");
} else {
System.out.println("Giá trị không hợp lệ!");
}
}
}
Kết quả:
Xếp loại C
✅ Mệnh đề Switch Case trong Java
Mệnh đề switch case
trong Java được sử dụng để thực thi 1 hoặc nhiều khối lệnh từ điều kiện đầu vào.
Cú pháp:
switch (bieu_thuc) {
case gia_tri_1:
// Khối lệnh 1
break; //tùy chọn
case gia_tri_2:
// Khối lệnh 2
break; //tùy chọn
......
case gia_tri_n:
// Khối lệnh n
break; //tùy chọn
default:
// Khối lệnh này được thực thi
// nếu tất cả các điều kiện trên không thỏa mãn
}
🔆 Mệnh đề Switch Case khi sử dụng 'break'
Khi sử dụng từ khóa 'break' trong mệnh đề switch case. Điều này có nghĩa là rơi vào case nào thì khối lệnh sẽ thực thi xong và thoát luôn switch đó, không phải kiểm tra tiếp các case bên dưới.
Ví dụ:
public class SwitchExampleBreak {
public static void main(String[] args) {
int number = 20;
switch (number) {
case 10:
System.out.println("10");
break;
case 20:
System.out.println("20");
break;
case 30:
System.out.println("30");
break;
default:
System.out.println("Not in 10, 20 or 30");
}
}
}
Kết quả:
20
🔆 Mệnh đề Switch Case khi KHÔNG sử dụng 'break'
Khi không sử dụng từ khóa 'break' trong mệnh đề switch case. Điều này có nghĩa là các khối lệnh sau cái case mà có giá trị phù hợp sẽ được thực thi tiếp cho đến hết mà không cần kiểm tra thoả điều kiện.
Ví dụ:
public class SwitchExampleNOTBreak {
public static void main(String[] args) {
int number = 20;
switch (number) {
case 10:
System.out.println("10");
case 20:
System.out.println("20");
case 30:
System.out.println("30");
default:
System.out.println("Not in 10, 20 or 30");
}
}
}
Kết quả:
20
30
Not in 10, 20 or 30
Vòng lặp for trong java
Vòng lặp for trong java được sử dụng để lặp một phần của chương trình nhiều lần. Nếu số lần lặp là cố định thì vong lặp for được khuyến khích sử dụng, còn nếu số lần lặp không cố định thì nên sử dụng vòng lặp while hoặc do while.
Có 3 kiểu của vòng lặp for trong java:
- Vòng lặp for đơn giản
- Vòng lặp for cải tiến
- Vòng lặp for gán nhãn
Vòng lặp for đơn giản
Vòng lặp for đơn giản giống như trong C/C++. Chúng ta có thể khởi tạo biến, kiểm tra điều kiện và tăng/giảm giá trị của biến.
Cú pháp:
for (khoi_tao_bien ; check_dieu_kien ; tang/giam_bien) {
// Khối lệnh được thực thi
}
Ví dụ:
public class ForExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
Kết quả:
1
2
3
4
5
6
7
8
9
10
Vòng lặp for cải tiến
Vòng lặp for cải tiến được sử dụng để lặp mảng(array) hoặc collection trong java. Bạn có thể sử dụng nó dễ dàng, dễ hơn cả vòng lặp for đơn giản. Bởi vì bạn không cần phải tăng hay giảm giá trị của biến rồi check điều kiện, bạn chỉ cần sử dụng ký hiệu hai chấm “:”
Cú pháp:
for (Type var : array) {
// Khối lệnh được thực thi
}
Ví dụ:
public class ForEachExample {
public static void main(String[] args) {
int arr[] = { 12, 23, 44, 56, 78 };
for (int i : arr) {
System.out.println(i);
}
}
}
Kết quả:
12
23
44
56
78
Mảng (Array) trong Java
Thông thường, mảng (array) là một tập hợp các phần tử có cùng kiểu được lưu trữ gần nhau trong bộ nhớ.
Mảng trong java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Mảng là một cấu trúc dữ liệu nơi lưu trữ các phần tử giống nhau. Với mảng trong java chúng ta chỉ có thể lưu trữ một tập các phần tử có số lượng phần tử cố định.
Mảng trong java lưu các phần tử theo chỉ số, chỉ số của phần tử đầu tiên là 0.
Lợi ích của mảng trong java
- Tối ưu code: Mảng giúp lấy hoặc sắp xếp dữ liệu dễ dàng.
- Truy cập ngẫu nhiên: Chúng ta có thể lấy dữ liệu được lưu trữ ở bất kỳ vị trí nào thông qua chỉ số.
Sự bất tiện của mảng trong java
- Giới hạn kích thước: Chúng ta phải khởi tạo kích thước của mảng trong java trước khi sử dụng. Không thể thay đổi được kích thước của nó lúc runtime. Collection framework được sử dụng trong java để giải quyết vấn đề này.
Các kiểu của mảng trong java
Có hai kiểu mảng trong java
- Mảng một chiều
- Mảng đa chiều
Mảng một chiều trong java
Các cách khai báo mảng một chiều trong java
dataType[] arr;
dataType []arr;
dataType arr[];
Khởi tạo mảng một chiều trong java
datatype <tên mảng>[] = new datatype[size];
Ví dụ về mảng một chiều trong java
Ví dụ đơn giản về khai báo, khởi tạo và duyệt các phần tử của mảng.
public class TestArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
// khai báo và khởi tạo mảng
int a[] = new int[3];
a[0] = 10; // gán giá trị
a[1] = 20;
a[2] = 50;
// in mảng ra màn hình
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
Kết quả:
10 20 50
Khai báo, khởi tạo mảng một chiều bằng mảng nặc danh
Ví dụ:
public class TestArray1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// gán mảng nặc danh cho mảng a
int a[] = { 33, 3, 4, 5 };
// in mảng a ra màn hình
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
Kết quả:
33 3 4 5
Truyền mảng vào phương thức trong java
Chúng ta có thể truyền mảng vào phương thức, điều này giúp tái sử dụng code logic để xử lý mảng bất kỳ. Ví dụ:
public class TestArray2 {
static void min(int arr[]) {
int min = arr[0];
for (int i = 1; i < arr.length; i++)
if (min > arr[i]) {
min = arr[i];
}
System.out.println(min);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = { 33, 3, 4, 5 };
min(a);// truyền mảng tới phương thức
}
}
Kết quả:
3
Anh Tester
facebook.com/anhtester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu