Mảng là một cấu trúc lưu giữ các thành phần có cùng kiểu. Chiều dài một mảng được thiết lập và cố định khi mảng được tạo lúc chạy chương trình. Mỗi thành phần của mảng được truy xuất bởi chỉ số của nó trong mảng
Nếu bạn muốn lưu giữ các thành phần khác kiểu nhau hay kích thước mảng có thể thay đổi động, dùng một Vector thay cho mảng
1. Tạo và sử dụng mảng
Khai báo một biến tham chiếu đến mảng
ArrayType[] ArrayName
Khai báo một biến có kiểu ArrayType dùng để tham chiếu đến mảng, nhưng không có mảng nào thật sự tồn tại
ArrayType : là kiểu dữ liệu của các thành phần chứa trong mảng và dấu [] chỉ định đó là một mảng
Kiểu dữ liệu thành phần có thể là bất kỳ kiểu cơ sở, tham chiếu
int[] anArrayOfInts; // Khai báo một mảng số nguyên
float[] anArrayOfFloats;
boolean[] anArrayOfBooleans;
Object[] anArrayOfObjects;
String[] anArrayOfStrings;
Tạo một mảng
Bạn dùng toán tử new để tạo một mảng, nghĩa là cấp phát bộ nhớ cho các thành phần và gán mảng đến biến đã khai báo
ArrayName = new ArrayType[ArraySize]
ArraySize : là số thành phần của mảng
Ví dụ : int[] M; // khai báo biến mảng kiểu số nguyên
M = new int[10]; // tạo một mảng số nguyên
Bạn có thể kết hợp sự khai báo biến mảng và tạo mảng như sau :
ArrayType[] ArrayName = new ArrayType[ArraySize]
Có thể viết như sau :
ArrayType ArrayName[] = new ArrayType[ArraySize]
Ví dụ : int[] M = new int[10];
int M[] = new int[10];
Truy xuất thành phần của mảng
ArrayVar[index]
index : chỉ vị trí của thành phần trong mảng cần truy xuất, có thể là giá trị, biến hay biểu thức, và có giá trị từ 0 đến ArraySize-1
Ví dụ : M[1] = 20;
Lấy kích thước mảng
ArrayName.length
Khởi tạo giá trị đầu của mảng
Mảng có thể khởi tạo khi khai báo. Mảng khởi tạo là danh sách các biểu thức cách nhau bởi dấu phẩy và bao quanh bởi dấu ngoặc móc. Mảng sẽ được khởi tạo tự động để lưu số phần tử mà bạn xác định lúc khởi tạo, không cần sử dụng new. Chiều dài của mảng là số giá trị giữa { và }
Ví dụ : boolean[] answers = { true, false, true, true, false };
int month_days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
Ví dụ 1: Tạo và sử dụng mảng có thành phần kiểu cơ sở
public class ArrayDemo {
public static void main(String[] args) {
int[] anArray;
anArray = new int[10];
for (int i = 0; i < anArray.length; i++) {
anArray = i;
System.out.print(anArray + " ");
}
System.out.println();
}
}
Ví dụ 2 : Tạo và sử dụng mảng có thành phần kiểu tham lớp String
public class ArrayOfStringsDemo {
public static void main(String[] args) {
String[] anArray = { "String One", "String Two", "String Three" };
for (int i = 0; i < anArray.length; i++) {
System.out.println(anArray.toLowerCase());
}
}
}
2. Mảng đa chiều (Arrays of Arrays)
Mảng có thể chứa các thành phần là mảng. Để khai báo một biến mảng đa chiều cần xác định mỗi chiều của mảng bằng cách sử dụng các cặp dấu ngoặc vuông.
Ví dụ : int M[][] = new int[4][5];
int[][] M = new int[4][5];
M là một mảng 4x5 thành phần là các số nguyên.
Khi cấp phát bộ nhớ cho mảng đa chiều, bạn có thể chỉ định chiều dài của mảng chính, và không chỉ định chiều dài của mảng con cho đến khi tạo chúng
Ví dụ : int M[][] = new int[3][];
M[0] = new int[3];
M[1] = new int[4];
M[2] = new int[2];
Ví dụ 1 :
public class ArrayOfArraysDemo {
public static void main(String[] args) {
String[][] cartoons = {
{ "Flintstones", "Fred", "Wilma", "Pebbles", "Dino" },
{ "Rubbles", "Barney", "Betty", "Bam Bam" },
{ "Jetsons", "George", "Jane", "Elroy", "Judy", "Rosie", "Astro" },
{ "Scooby Doo Gang", "Scooby Doo", "Shaggy", "Velma", "Fred", "Daphne" }
};
for (int i = 0; i < cartoons.length; i++) {
System.out.print(cartoons[0] + ": ");
for (int j = 1; j < cartoons.length; j++) {
System.out.print(cartoons[j] + " ");
}
System.out.println();
}
}
}
Chú ý là tất cả mảng con có chiều dài khác nhau. Tên của mảng con là cartoons[0], cartoons[1]...
Ví dụ 2 :
public class ArrayOfArraysDemo2 {
public static void main(String[] args) {
int[][] aMatrix = new int[4][];
for (int i = 0; i < aMatrix.length; i++) {
aMatrix = new int[5];
for (int j = 0; j < aMatrix.length; j++) {
aMatrix[j] = i + j;
}
}
for (int i = 0; i < aMatrix.length; i++) {
for (int j = 0; j < aMatrix.length; j++) {
System.out.print(aMatrix[j] + " ");
}
System.out.println();
}
}
}
3. Sao chép mảng (Copying Arrays)
Sử dụng phương thức arraycopy của System sao chép dữ liệu từ một mảng đến một mảng khác. Phương thức arraycopy yêu cầu 5 tham đối :
public static void arraycopy(ArrayType[] source,
int srcIndex,
ArrayType[] dest,
int destIndex,
int length)
Hai tham đối Object chỉ định mảng nguồn và mảng đích. Ba tham đối int chỉ vị trí bắt đầu trong mỗi mảng nguồn và đích, và số thành phần để sao chép. Biểu đồ này minh hoạ việc sao chép :
Ví dụ :
public class ArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
'i', 'n', 'a', 't', 'e', 'd' };
char[] copyTo = new char[7];
System.arraycopy(copyFrom, 2, copyTo, 0, 7);
System.out.println(new String(copyTo));
}
}
Chú ý rằng mảng đích phải được cấp phát và phải đủ lớn để chứa dữ liệu được sao chép
Với lập trình di động không có chỗ cho lập trình viên trung bình. ... Android cung cấp rất đầy đủ API, code mẫu, pattern để lập trình viên học và ...
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
Hi mọi người! Vậy là chúng ta đã cùng nhau làm xong 2 Game đơn giản ở những bài trước. Trong bài này mình sẽ hướng dẫn các bạn làm 1 game kh...
-
Một trong những cách kiếm tiền qua mạng phổ biến hiện này mà ai cũng có thể tham gia vào chỉ với chút ít kiến thức về máy tính là bán hàng q...
-
Ông Trần Quang Trung - Cục trưởng Cục An toàn Thực phẩm (ATTP - Bộ Y tế) khẳng định: "Cục ATTP sẽ xem xét bởi mì tôm của nước ta còn ph...
-
Trong tất cả các kiểu dữ liệu trên máy tính thì video là kiểu dữ liệu phức tạp nhất để mã hóa và giải mã, đồng thời cũng có dung lượng lớn n...
-
Có rất nhiều thiết bị mạng khác nhau, mỗi thiết bị có một đặc điểm và vai trò riêng, bài viết này sẽ giới thiệu về một số thiết bị mạng thôn...
-
Chào mọi người! Vậy là chúng ta đã đi được 1 chặng đường kha khá của Cocos2d-x V3 rồi. Cũng chuẩn bị xong Project thứ 2 đấy chứ. Trong phần ...
-
Để tìm hiểu về cách biểu diễn âm thành âm thanh trong máy tính (âm thanh số), trước hết ta phải hiểu mô hình chuyển âm thanh từ dạng tương t...
-
Trong một buổi họp với các doanh nghiệp, Cơ quan Thuế và Hải quan Anh - (HMRC) cho biết họ sẽ không đánh thuế 20% lên các giao dịch sử dụng ...
-
Máy tính nhúng là một thuật ngữ để chỉ một máy tính có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các h...
-
Yêu cầu Sử dụng thành thạo Java (Core Java) Có kiến thức tốt về cấu trúc dữ liệu và thuật toán Có khả năng tự học, tự nghiên cứu Quyền lợi M...

Không có nhận xét nào:
Đăng nhận xét