Mảng là gì?
Mảng là một cấu trúc dữ liệu được sử dụng để lưu trữ các phần tử của cùng một kiểu dữ liệu. Các phần tử được sắp xếp theo thứ tự với phần tử đầu tiên ở chỉ số 0 và phần tử cuối cùng ở chỉ số n-1, trong đó n là tổng số phần tử trong mảng.
Trong hướng dẫn này, bạn sẽ học:
- Mảng là gì?
- Cách khai báo và khởi tạo mảng
- Mảng kích thước cố định
- Mảng động
- Lấy nội dung của một mảng
- Thêm các phần tử mới vào một mảng
- Xóa một mảng
- Chức năng phân tách
- Chức năng tham gia
Cách khai báo và khởi tạo mảng
Trong VB.NET, mảng được khai báo bằng câu lệnh Dim. Ví dụ:
Dim myData() As Integer
Trong ví dụ trên, chúng ta đã xác định một mảng có tên là myData và nó phải chứa các phần tử của kiểu dữ liệu số nguyên. Ví dụ sau minh họa cách chúng ta có thể khai báo một mảng để chứa các phần tử chuỗi:
Dim myData(10) As String
Chúng tôi đã xác định một mảng có tên myData để chứa 10 chuỗi.
Chúng ta có thể khởi tạo mảng tại thời điểm khai báo chúng. Ví dụ:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Chúng ta đã khai báo mảng myData và thêm 6 phần tử nguyên vào nó. Điều này cũng có thể được thực hiện đối với trường hợp chuỗi:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Chúng tôi đã tạo một mảng có tên là sinh viên và thêm 5 tên vào đó.
Mảng kích thước cố định
Một mảng có kích thước cố định chứa một số phần tử cố định. Điều này có nghĩa là bạn phải xác định số phần tử mà nó sẽ giữ trong quá trình định nghĩa. Giả sử bạn cần một mảng chỉ chứa 3 tên sinh viên. Bạn có thể xác định và khởi tạo mảng như sau:
Dim students(0 to 2) As Stringstudents(0) = "John"students (1) = "Alice"students (2) = "Antony"
Chúng tôi bắt đầu bằng cách khai báo một mảng chuỗi có tên là sinh viên. Giá trị 0 đến 2 khai báo rằng mảng sẽ lưu trữ các phần tử từ chỉ số 0 đến chỉ số 2 của nó, có nghĩa là chúng ta sẽ có tổng cộng 3 phần tử.
Để thêm các phần tử vào mảng, chúng tôi đã sử dụng tên mảng và chỉ định chỉ số mà phần tử sẽ được lưu trữ. Ví dụ, tên John sẽ được lưu ở chỉ số 0 của mảng, nghĩa là nó sẽ tạo thành phần tử đầu tiên của mảng. Antony sẽ là phần tử cuối cùng của mảng.
Mảng động
Đây là một mảng có thể chứa bất kỳ số phần tử nào. Kích thước mảng có thể tăng lên bất kỳ lúc nào. Điều này có nghĩa là bạn có thể thêm các phần tử mới vào mảng bất kỳ lúc nào chúng ta muốn. Để chứng minh điều này, trước tiên chúng ta hãy xác định một mảng các số nguyên:
Dim nums() As Integer
Chúng tôi đã xác định một mảng số nguyên có tên là nums. Bây giờ bạn cần thêm hai phần tử vào mảng, đồng thời tạo khoảng trống cho việc thay đổi kích thước của nó. Bạn cần sử dụng câu lệnh ReDim như sau:
ReDim nums(1)nums(0) = 12nums(1) = 23
Mảng của chúng ta bây giờ có hai phần tử trong chỉ mục 0 và 1. Chúng ta cần thêm một phần tử thứ ba vào nó ở chỉ mục 3 trong khi vẫn giữ nguyên hai phần tử mà nó đã có. Chúng ta có thể làm như sau:
ReDim Preserve nums(2)nums(2) = 35
Mảng bây giờ có ba phần tử.
Lấy nội dung của một mảng
Truy xuất có nghĩa là truy cập các phần tử của mảng. Để truy cập một phần tử mảng, chúng tôi sử dụng chỉ mục của nó. Hãy để chúng tôi chứng minh điều này bằng cách sử dụng một ví dụ.
Bước 1) Bắt đầu bằng cách tạo một ứng dụng bảng điều khiển mới.
Bước 2) Thêm mã sau vào ứng dụng:
Module Module1Sub Main()Dim students(0 to 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Console.WriteLine("First student is {0} ", students(0))Console.WriteLine("Second student is {0} ", students(1))Console.WriteLine("Third student is {0} ", students(2))Console.ReadKey()End SubEnd Module
Bước 3) Chạy mã bằng cách nhấp vào nút Bắt đầu từ thanh công cụ. Bạn sẽ nhận được cửa sổ sau:
Chúng tôi đã sử dụng mã sau:
Giải thích mã:
- Tạo một mô-đun có tên là Module1.
- Tạo thủ tục phụ chính.
- Tạo một mảng có tên là sinh viên để lưu trữ các phần tử chuỗi. Mảng sẽ lưu trữ các phần tử từ chỉ số 0 đến chỉ số 2, có nghĩa là nó sẽ có tổng cộng 3 phần tử.
- Thêm tên John làm phần tử đầu tiên của mảng, nghĩa là John được lưu trữ ở chỉ mục 0.
- Thêm tên Alice làm phần tử thứ hai của mảng, tức là Alice được lưu trữ ở chỉ mục 1.
- Thêm tên Antony làm phần tử thứ ba của mảng, tức là Antony được lưu trữ ở chỉ mục 2.
- In một số văn bản và phần tử được lưu trữ ở chỉ mục 0 của mảng sinh viên trên bảng điều khiển. Các sinh viên (0) giúp chúng ta truy cập phần tử ở chỉ số 0 của mảng có tên là sinh viên.
- In một số văn bản và phần tử được lưu trữ ở chỉ mục 1 của mảng sinh viên trên bảng điều khiển. Các sinh viên (1) giúp chúng ta truy cập phần tử ở chỉ số 1 của mảng có tên là sinh viên.
- In một số văn bản và phần tử được lưu trữ ở chỉ mục 2 của mảng sinh viên trên bảng điều khiển. Các sinh viên (2) giúp chúng ta truy cập phần tử ở chỉ số 2 của mảng có tên là sinh viên.
- Tạm dừng cửa sổ bảng điều khiển để chờ hoặc người dùng thực hiện hành động để đóng nó.
- Kết thúc thủ tục phụ.
- Kết thúc học phần.
Thêm các phần tử mới vào một mảng
Điều này sẽ chỉ xảy ra nếu bạn có một mảng động. Nếu bạn đã khai báo một mảng chiều có kích thước cố định và nó chứa đầy các phần tử của mảng, bạn không thể thêm các phần tử mới vào nó. Ví dụ sau minh họa cách thêm các phần tử mới vào một mảng động:
Bước 1) Bắt đầu bằng cách tạo một ứng dụng bảng điều khiển mới.
Bước 2) Thêm mã sau vào ứng dụng:
Module Module1Sub Main()Dim nums() As IntegerReDim nums(1)nums(0) = 12nums(1) = 23For x = 0 To nums.Length - 1Console.WriteLine("Initial array element: {0}", nums(x))NextReDim Preserve nums(2)nums(2) = 35For x = 0 To nums.Length - 1Console.WriteLine("Final array element: {0}", nums(x))NextConsole.ReadKey()End SubEnd Module
Bước 3) Nhấp vào nút Bắt đầu từ thanh công cụ để chạy mã. Bạn sẽ nhận được cửa sổ sau:
Chúng tôi đã sử dụng mã sau:
Giải thích mã:
- Tạo một mô-đun có tên là Module1.
- Tạo thủ tục phụ chính.
- Tạo một mảng có tên là nums để chứa các giá trị nguyên.
- Chỉ định rằng mảng trên sẽ lưu trữ hai phần tử, nghĩa là ở chỉ số 0 và 1 trong khi vẫn cho phép thay đổi kích thước.
- Thêm phần tử 12 vào chỉ số 0 của số mảng.
- Thêm phần tử 23 vào chỉ số 1 của số mảng.
- Sử dụng vòng lặp for để tạo một biến x để giúp chúng ta lặp lại từ phần tử đầu tiên đến phần tử cuối cùng của dãy nums. Lưu ý rằng mảng bây giờ có hai phần tử, 12 và 23.
- In một số văn bản và các phần tử của mảng trên bảng điều khiển.
- Kết thúc vòng lặp for và chuyển sang phần tiếp theo của mã.
- Thay đổi kích thước của nums mảng để cho phép các phần tử ở chỉ số 0 đến 2. Bây giờ nó sẽ có thể lưu trữ 3 phần tử thay vì 2. Từ khóa Preserve giúp chúng ta duy trì các phần tử hiện tại của mảng, nghĩa là, 12 và 23.
- Thêm phần tử 35 vào chỉ số 2 của mảng. Mảng bây giờ có ba phần tử, 12, 23 và 35.
- Sử dụng vòng lặp for để tạo một biến x để giúp chúng ta lặp lại từ phần tử đầu tiên đến phần tử cuối cùng của dãy nums. Lưu ý rằng mảng bây giờ có ba phần tử, 12, 23 và 35.
- In một số văn bản và các phần tử của mảng trên bảng điều khiển.
- Kết thúc vòng lặp for và chuyển sang phần tiếp theo của mã.
- Tạm dừng cửa sổ bảng điều khiển chờ người dùng thực hiện hành động để đóng nó.
- Kết thúc thủ tục phụ.
- Kết thúc học phần.
Xóa một mảng
Bạn nên xóa mảng của mình sau khi làm xong, chủ yếu là khi bạn đang xử lý một mảng động. Điều này sẽ giúp bạn giải phóng một số không gian bộ nhớ.
Để xóa một mảng, bạn chỉ cần gọi câu lệnh Erase theo sau là tên của mảng. Ví dụ:
Dim nums(1) As Integernums(0) = 12nums(1) = 23Erase nums
Chúng tôi đã khai báo một mảng các số nguyên có tên là nums và thêm hai phần tử vào đó. Câu lệnh Erase nums sẽ xóa mảng.
Chức năng phân tách
Chức năng chia nhỏ được cung cấp bởi Visual Basic .NET giúp chúng ta chia một chuỗi thành các phần và giữ chúng trong một mảng. Ví dụ sau minh họa cách sử dụng hàm này:
Bước 1) Tạo một ứng dụng bảng điều khiển mới.
Bước 2) Thêm mã sau vào ứng dụng:
Module Module1Sub Main()Dim myarray() As StringDim guru99 As StringDim x As Integerguru99 = "Welcome, to, Guru99"myarray = Split(guru99, ", ")For x = LBound(myarray) To UBound(myarray)Console.WriteLine(myarray(x))NextConsole.ReadKey()End SubEnd Module
Bước 3) Chạy mã bằng cách nhấp vào nút Bắt đầu từ thanh công cụ. Bạn sẽ nhận được cửa sổ sau:
Chúng tôi đã sử dụng mã sau:
Giải thích mã:
- Tạo một mô-đun có tên là Module1.
- Bắt đầu thủ tục phụ chính.
- Tạo một mảng có tên myarray để chứa các giá trị chuỗi.
- Tạo một biến chuỗi có tên là guru99.
- Tạo một biến số nguyên có tên là x.
- Gán một chuỗi cho biến guru99.
- Tách Chuỗi ở trên thành các phần và đặt chúng vào mảng có tên là myarray. Dấu "," (dấu phẩy) là dấu phân cách, do đó hàm tách sẽ sử dụng nó để đánh dấu phần cuối của các phần khác nhau của Chuỗi.
- Sử dụng biến x để lặp qua mảng có tên myarray. LBound và UBound lần lượt chỉ định các giới hạn dưới và giới hạn trên của mảng.
- In các giá trị của mảng có tên myarray trên bảng điều khiển.
- Kết thúc vòng lặp for và
Chức năng tham gia
Hàm nối giúp chúng ta nối nhiều mảng thành một chuỗi duy nhất. Ví dụ sau minh họa điều này:
Bước 1) Bắt đầu bằng cách tạo một ứng dụng bảng điều khiển mới.
Bước 2) Thêm mã sau vào ứng dụng:
Module Module1Sub Main()Dim students(0 To 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Dim classmates As Stringclassmates = Join(students, ", ")Console.WriteLine(classmates)Console.ReadKey()End SubEnd Module
Bước 3) Chạy mã bằng cách nhấp vào nút Bắt đầu trên thanh công cụ:
Chúng tôi đã sử dụng mã sau:
Giải thích mã:
- Tạo một mô-đun có tên là Module1.
- Tạo thủ tục phụ chính.
- Tạo một mảng có tên là sinh viên để chứa 3 giá trị chuỗi.
- Thêm tên John vào chỉ số 0 của mảng.
- Thêm tên Alice vào chỉ mục 1 của mảng.
- Thêm tên Antony vào chỉ mục 2 của mảng.
- Định nghĩa một biến có tên là bạn cùng lớp của kiểu dữ liệu chuỗi.
- Nối tất cả các phần tử của mảng sinh viên và phân tách chúng bằng dấu, (dấu phẩy). Kết quả của thao tác này sẽ được gán cho các lớp biến.
- In nội dung của biến trong lớp trên bảng điều khiển.
- Tạm dừng cửa sổ bảng điều khiển để chờ người dùng thực hiện hành động để đóng nó.
- Kết thúc thủ tục phụ chính.
- Kết thúc học phần.
Tóm lược
- Mảng được sử dụng để lưu trữ các phần tử dữ liệu thuộc cùng một kiểu dữ liệu.
- Mảng động cho phép người dùng thay đổi kích thước bằng cách thêm nhiều phần tử vào đó. Bạn sử dụng lệnh ReDim để thêm các phần tử vào một mảng hiện có
- Không thể thay đổi kích thước của mảng có kích thước cố định.
- Các phần tử mảng được sắp xếp thứ tự bằng cách sử dụng các chỉ mục, với phần tử đầu tiên ở chỉ số 0 và phần tử cuối cùng ở chỉ số n-1, trong đó n là tổng số phần tử của mảng.
- Mảng có thể được xóa bằng cách sử dụng chức năng Erase
- Bạn có thể sử dụng các hàm tách và nối để tách hoặc nối một mảng chuỗi tương ứng