Xem 12,474
Cập nhật nội dung chi tiết về Tìm Hiểu Các Cấu Trúc Dữ Liệu Trong Dart mới nhất ngày 20/05/2022 trên website Comforttinhdauthom.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến nay, bài viết này đã thu hút được 12,474 lượt xem.
--- Bài mới hơn ---
Trong phần này chúng ta sẽ tìm hiểu một số cấu trúc dữ liệu cơ bản đã triển khai sẵn trong ngôn ngữ lập trình Dart:
Cấu trúc dữ liệu liệt kê enum
Trong Dart đây là một loại lớp đặc biệt, biểu diễn một tập hợp cố định các hằng số. Để tạo ra một enum
dùng từ khóa enum
khai báo các phần tử liệt kê theo tên cách nhau bởi ,
ví dụ:
enum UserGroup {guest, member, admin}
Enum rất tiện lợi dùng với câu lệnh switch
var user_group = UserGroup.admin; switch (user_group) { case UserGroup.admin: print('Quản trị hệ thống'); break; case UserGroup.guest: print('Khách'); break; default: }
Cấu trúc dữ liệu Iterable
Iterable là một lớp generic biểu diễn tập hợp dữ liệu mà có thể duyệt qua hết phần tử này đến phần tử khác. Nghĩa là nó hỗ trợ moveNext()
để đi đến phần tử tiếp theo, lấy dữ liệu phần tử hiện tại bằng iterator.current
Thường thì Iterable
được tạo ra, liên kết với một loại kiểu dữ liệu tập hợp khác như List, Map chúng tôi các loại cấu trúc dữ liệu này để tìm hiểu về Interable
Duyệt qua các phần tử Iterable
//Sinh ra Iterable chứa 100 phần tử số từ 0 - đến 99 var iterable = new Iterable.generate(100); for (var item in iterable) { print(item); } //0 //1 ... //99
Hoặc duyệt qua bằng forEach
iterable.forEach((f) { print(f); });
Các phương thức / thuộc tính hay dùng trên mảng – danh sách
Cấu trúc dữ liệu Danh sách – Mảng – List
Trong Dart, danh sách (cũng là mảng) được định nghĩa từ lớp generic List
, nó chứa một tập hợp các dữ liệu – mỗi dữ liệu trong List là gọi là phần tử, vị trí của nó xác định bằng chỉ số bắt đầu từ 0
, truy cập đến mảng (danh sách) dùng ký hiệu = 'on';
listState sẽ lỗi- vì List chỉ có 2 phần tử
print(listState); //
//Xóa phần tủ cuối cùng
dow.removeLast();
print(dow); //
//Khởi tạo mảng với 2 phần tử var group =
Các phương thức / thuộc tính hay dùng trên mảng – danh sách
Ngoài các phương thức – thuộc tính giống như Iterable
chú ý thêm:
Cấu trúc dữ liệu – Map – Ánh xạ
Đây là kiểu tập hợp dữ liệu mà mỗi phần tử biểu diễn theo cặp key:value
Các phần tử của Map được truy cập bằng ký hiệu
Khởi tạo Map có thể dùng toàn tử new
hoặc khởi tạo luôn một số phần tử bằng {}
//Tạo một map, khới tạo luôn 3 key - nam, age, score var student = { 'name':'Abc', 'age': 22, 'score': 'A' }; student); //Truy cập phần tử
Cũng hoàn tạo tạo ra Map từ toán tử new
var student = new Map(); student = 'StudentA'; student}'); }
Các phương thức / thuộc tính hay dùng trên Map
Ngoài các phương thức – thuộc tính giống như Iterable
xem ở trên chú ý thêm:
Tập hợp – Set
Tập hợp như tên gọi là là tập hợp các phần tử, đảm bảo sao cho mỗi phần tử chỉ được xuất hiện 1 lần.
Khởi tạo một tập hợp bằng toán tử new
với cú pháp
var s = Set();
Nó có các phương thức và cách duyệt qua phần tử giống phần trình bày Iterable
ở trên.
Để thêm một phần tử vào tập hợp dùng hàm add(ele);
để loại bỏ phần tử dùng hàm remove(ele);
, kiểm tra xem có chứa phần tử bằng hàm contains(ele);
Một số cấu trúc dữ liệu phức tạp
Từ các cấu trúc dữ liệu trên, Dart
xây dựng thêm các loại cấu trúc phức chứa trong thư viện dart:collection
Một số loại như: HashMap
, HashSet
, LinkedList
…
Trước khi sử dụng các cấu trúc dữ liệu này cần nạp thư viện bằng lệnh sau ở đầu file
import 'dart:collection';
Hàng đợi – Queue
Với hàng đợi Queue thì chỉ tương tác với cấu trúc này ở đầu hàng đợi và cuối hàng đợi (thêm / bớt).
var q = new Queue(); q.add('A'); q.add('B'); q.addFirst('A0'); q.addLast('B0'); print(q); q.removeFirst(); q.removeLast(); q.remove('B');
HashMap
Sử dụng và ý nghĩa giống Map
(khởi tạo new HashMap()
), có có điều các đối tượng làm key phải cung cấp sự so sánh==
thông qua giá trị .hashCode
HashMap sử dụng mã hash của đối tượng key để so sánh, tìm kiếm phần tử nên HashMap nhanh hơn khi dữ liệu key lớn
HashSet
Sử dụng và ý nghĩa giống Set
(khởi tạo new HashSet()
), so sánh ==
thông qua giá trị .hashCode
LinkedList
Sử dụng và ý nghĩa giống List
(khởi tạo new LinkedList()
), chỉ có điều nó lưu trữ dữ liệu theo cách tối ưu để duyệt qua, tìm kiếm nhanh, tốt để tương quản lý dữ liệu, như chèn và xóa một lượng lớn phần tử
--- Bài cũ hơn ---
Bạn đang đọc nội dung bài viết Tìm Hiểu Các Cấu Trúc Dữ Liệu Trong Dart trên website Comforttinhdauthom.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!