Array Trong Java Với Ví Dụ Cụ Thể - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Khai báo mảng trong java
- 2 Khởi tạo mảng
- 3 Phương thức hoạt động của mảng
- 4 Truy xuất các phần tử của mảng
- 4.1 Truy xuất trực tiếp
- 4.2 Truy xuất tuần tự
- 5 Passing by reference
- 6 Thao tác cơ bản trên array
- 7 Bài tập thực hành
Java cung cấp cho chúng ta rất nhiều cấu trúc dữ liệu, trong đó array là một cấu trúc cho phép lưu trữ một tập hợp các dữ liệu cùng loại, tuần tự và có số lượng xác định.
Chúng ta cứ tưởng tượng nếu chúng ta cần sử dụng đến 100 biến int để lưu trữ data của chúng ta, thì chỉ với việc khai báo chúng ta đã ngốn hết 100 dòng code. Còn đối với mảng chúng ta sẽ làm như sau:
int[] arr = new int[100];Khai báo mảng trong java
Cú pháp khai báo mảng trong java
<Kiểu dữ liệu>[] <tên mảng>;Khởi tạo mảng
Cách 1: Khởi tạo không gán giá trị ban đầu
<Kiểu dữ liệu>[] <tên mảng> = new <kiểu dữ liệu>[số lượng phần tử];Cách 2: Khởi tạo có giá trị ban đầu
<Kiểu dữ liệu>[] <tên mảng> = {value0, value1, ... valuen};Phương thức hoạt động của mảng
Một mảng sẽ có chỉ số index từ 0 đến n – 1 (n là số lượng phần tử của mảng).
Ví dụ: Khởi tạo mảng số nguyên 10 phần tử, có giá trị tuần tự từ 1 đến 10. Và xuất các giá trị của mảng ra màn hình console.
public class Main { public static void main(String[] args) { int[] arr = new int[10]; for (int i = 0; i < 10; i++) { arr[i] = i + 1; } for(int item : arr) { System.out.print(item + " "); } } }Output: 1 2 3 4 5 6 7 8 9 10
Trong một mảng phần tử đầu tiên (index = 0) gọi là foundation address. Các phần tử khác sẽ được truy xuất dựa vào phần tử đầu tiên.
Truy xuất các phần tử của mảng
Chúng ta có 2 cách để truy xuất các phần tử của mảng
- Truy xuất trực tiếp
- Truy xuất tuần tự
Truy xuất trực tiếp
arr[index];Ví dụ truy xuất phần tử thứ 5 của mảng
public class Main { public static void main(String[] args) { // Khoi tao mang int[] arr = new int[10]; for (int i = 0; i < 10; i++) { arr[i] = i + 1; } System.out.println(arr[5]); } }Output: 6
Chú ý nếu index vượt ra khoảng chưá của mảng thì chúng ta sẽ nhận một exception đấy nhá. Khoảng hợp lệ 0 đến n – 1( n số lượng phần tử của mảng).
Khi mình truy xuất arr[10] là vị trí không hợp lệ mình sẽ được kết quả sau: Exception in thread “main” ava.lang.ArrayIndexOutOfBoundsException: 10at Main.main(Main.java:11)
Truy xuất tuần tự
Sử dụng vòng lặp for truyền thống
for(int i = 0; i < 10; i++) { System.out.println(i); }Sử dụng foreach
for(int item : arr) { System.out.println(item); }Passing by reference
Khi bạn truyền java vào một method, các thay đổi trên mảng sẽ được cập sau khi kết thúc method.
Ví dụ: Tăng mỗi phần tử trong mảng lên mảng và in ra màn hình console.
public class Main { public static void main(String[] args) { // Khoi tao mang int[] arr = new int[10]; for (int i = 0; i < 10; i++) { arr[i] = i + 1; } increment(arr); for(int item : arr) { System.out.print(item + " "); } } public static void increment(int[] arr) { for (int i = 0; i < 10; i++) { arr[i] += 1; } } }Output: 2 3 4 5 6 7 8 9 10 11
Chúng ta thấy hàm increment() đã thay đổi các giá trị trong mảng. Vì vậy ở hàm main truy xuất được mảng đã được update bởi increment().
Thao tác cơ bản trên array
Java cung cấp cho chúng ta một số thao tác cơ bản mà chúng ta thường xuyên sử dụng như sắp xếp, so sánh etc, đựơc implement trong class java.util.Arrays.
STT | Method |
1 | public static int binarySeach(Object[] a, Object key)Tìm kiếm phần tử key trong mảng, điều kiện mảng đã được sắp xếp |
2 | public static boolean equals(long[] a, long[] a2)So sánh 2 mảng, trả về true nếu bằng nhau(index, value), ngược lại false |
3 | public static void fill(int[] a. int val)Khởi tạo mảng với giá trị được gán sẵn val |
4 | public static void sort(Object[] a) Sắp xếp mảng tăng dần |
Demo hàm sort
import java.util.Arrays; public class Main { public static void main(String[] args) { // Khoi tao mang int[] arr = {5, 2, 0, -4, 3, 9}; Arrays.sort(arr); for (int item : arr) { System.out.print(item + " "); } } }Output: -4 0 2 3 5 9
Các hàm khác các bạn có thể chạy thử nhé.
Bài tập thực hành
Cho mảng số nguyên arr, gồm n phần tử. Tìm
- Xuất giá trị của tất cả các phần tử trong mảng
- Tìm phần tử nhỏ nhất
- Tìm phần tử lớn nhất
- Đếm số lượng phần tử chẵn
- Đếm số lượng phần tử lẽ
Bài tham khảo
import java.util.Scanner; public class Main { public static void main(String[] args) { int[] arr = {1, 4, 6, 7, 4, 8, 3, 19, 35, 46, 43}; /* 1. Xuất giá trị của tất cả các phần tử trong mảng */ for(int item : arr) { System.out.print(item + " "); } /* 2. Tìm phần tử nhỏ nhất */ int min = Integer.MAX_VALUE; for(int item : arr) { if (item < min) { min = item; } } System.out.println("Phan tu nho nhat: " + min); /* Tìm phần tử lớn nhất */ int max = Integer.MIN_VALUE; for(int item : arr) { if (item > max) { max = item; } } System.out.println("Phan tu lon nhat: " + max); /* Đếm số lượng phần tử chẵn */ int count = 0; for(int item : arr) { if (item % 2 == 0) { count++; } } System.out.println("So luong phan tu chan: " + count); /* Đếm số lượng phần tử lẽ */ count = 0; for(int item : arr) { if (item % 2 != 0) { count++; } } System.out.println("So luong phan tu chan: " + count); } }Từ khóa » Khai Báo Array Java
-
Mảng (Array) Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Khai Báo Mảng Trong Java - Học Java Cơ Bản đến Nâng Cao - VietTuts
-
Mảng (Array) Trong Java - Openplanning
-
Array Java Series - 1 - Khai Báo Mảng Trong Java - Viblo
-
Mảng Trong Java
-
Mảng (Array) Trong Java
-
Khai Báo Và Khởi Tạo Mảng 1 Chiều (one Dimensional Array) Trong Java
-
Ví Dụ Về Mảng Trong Java - Java Arrays - NIIT - ICT Hà Nội
-
Bài 18: Mảng (Array) Trong Java - Lập Trình Java Cơ Bản
-
Khởi Tạo Mảng Java - TutorialCup
-
Mảng (Array) Trong Java - GP Coder (Lập Trình Java)
-
Mảng (Array), Cách Sử Dụng Mảng Trong Java - Thầy Nhuộm
-
Mảng (array) Trong Java - KungFu Tech
-
Java Arrays - Mảng Trong Java