Lập trình Dart - Bộ sưu tập

Dart, không giống như các ngôn ngữ lập trình khác, không hỗ trợ mảng. Bộ sưu tập phi tiêu có thể được sử dụng để sao chép cấu trúc dữ liệu giống như một mảng. Thư viện lõi dart: và các lớp khác cho phép hỗ trợ Bộ sưu tập trong các tập lệnh Dart.

Bộ sưu tập phi tiêu về cơ bản có thể được phân loại thành -

Sr.No Bộ sưu tập và mô tả phi tiêu
1 Danh sách

Danh sách chỉ đơn giản là một nhóm các đối tượng có thứ tự. Cácdart:core thư viện cung cấp lớp Danh sách cho phép tạo và thao tác với danh sách.

  • Fixed Length List - Độ dài của danh sách không thể thay đổi trong thời gian chạy.

  • Growable List - Độ dài của danh sách có thể thay đổi tại thời điểm chạy.

2 Bộ

Tập hợp đại diện cho một tập hợp các đối tượng trong đó mỗi đối tượng chỉ có thể xuất hiện một lần. Thư viện dart: core cung cấp lớp Set để triển khai tương tự.

3 Bản đồ

Đối tượng Bản đồ là một cặp khóa / giá trị đơn giản. Các khóa và giá trị trong bản đồ có thể thuộc bất kỳ loại nào. Bản đồ là một tập hợp động. Nói cách khác, Bản đồ có thể phát triển và thu nhỏ trong thời gian chạy. Lớp Bản đồ trong thư viện lõi dart: cung cấp hỗ trợ cho cùng một.

4 Xếp hàng

Hàng đợi là một tập hợp có thể được thao tác ở cả hai đầu. Hàng đợi hữu ích khi bạn muốn xây dựng bộ sưu tập nhập trước, xuất trước. Nói một cách đơn giản, một hàng đợi sẽ chèn dữ liệu từ một đầu và xóa từ một đầu khác. Các giá trị được xóa / đọc theo thứ tự chèn của chúng.

Lặp lại các Bộ sưu tập

Lớp Iterator từ dart:corethư viện cho phép truyền tải bộ sưu tập dễ dàng. Mỗi bộ sưu tập đều cóiteratorbất động sản. Thuộc tính này trả về một trình lặp trỏ đến các đối tượng trong bộ sưu tập.

Thí dụ

Ví dụ sau minh họa việc duyệt qua một tập hợp bằng cách sử dụng một đối tượng trình vòng lặp.

import 'dart:collection'; 
void main() { 
   Queue numQ = new Queue(); 
   numQ.addAll([100,200,300]);  
   Iterator i= numQ.iterator; 
   
   while(i.moveNext()) { 
      print(i.current); 
   } 
}

Các moveNext()hàm trả về giá trị Boolean cho biết liệu có mục nhập tiếp theo hay không. Cáccurrent thuộc tính của đối tượng vòng lặp trả về giá trị của đối tượng mà trình vòng lặp hiện trỏ đến.

Chương trình này sẽ tạo ra những điều sau output -

100 
200 
300