Rate this post

Dart không hỗ trợ mảng để lưu trữ dữ liệu, không giống như ngôn ngữ lập trình khác. Chúng ta có thể sử dụng bộ sưu tập Dart thay cho cấu trúc dữ liệu mảng. Chúng ta có thể kích hoạt các lớp khác của bộ sưu tập trong tập lệnh Dart của mình bằng cách sử dụng thư viện dart :: core.

Các bài viết liên quan:

Dart collection có thể được phân loại như sau.

Dart CollectionMô tả
ListMột danh sách là tập hợp của nhóm tập hợp có thứ tự. Thư viện dart :: core cung cấp lớp danh sách cho phép chúng ta tạo và sửa đổi danh sách. Nó cung cấp các loại danh sách sau đây.Danh sách Độ dài Cố định – Chúng tôi không thể thay đổi độ dài của danh sách trong thời gian chạy.Danh sách có thể phát triển – Chúng tôi có thể thay đổi độ dài của danh sách tại thời điểm chạy.
SetTập hợp là tập hợp các đối tượng trong đó mỗi đối tượng có thể được khai báo cùng một lúc. Thư viện lõi dart :: cung cấp lớp Set để sử dụng các cơ sở của nó.
MapsBản đồ là tập hợp của cặp dữ liệu khóa-giá trị. Mỗi giá trị được lưu trữ bằng một khóa cụ thể. Khóa và giá trị có thể là bất kỳ loại nào trong Dart. Bản đồ là một tập hợp động. Chúng tôi có thể nói rằng bản đồ có thể được sửa đổi tại thời điểm chạy. Thư viện dart :: core cung cấp sẵn lớp Bản đồ để làm việc với nó.
QueueHàng đợi là tập hợp nơi dữ liệu lưu trữ ở định dạng nhập trước xuất trước. Nó có thể được thao tác ở cả hai đầu. Đơn giản, chúng ta có thể nhập phần tử từ một đầu và xóa nó khỏi một đầu khác.

Xem thêm queue trong java

Iterating Collections

Thư viện dart :: core cung cấp lớp trình vòng lặp, cho phép duyệt qua bộ sưu tập dễ dàng. Như chúng ta biết rằng, mọi bộ sưu tập đều chứa một thuộc tính trình vòng lặp. Thuộc tính này trả về một trình vòng lặp trỏ đến các đối tượng trong bộ sưu tập. Hãy hiểu ví dụ sau.

Ví dụ:

import 'dart:collection';   
void main() {   
   Queue que = new Queue();   
   que.addAll([10,20,30]);    
   Iterator i= que.iterator;   
     
   while(i.moveNext()) {   
      print(i.current);   
   }   
}  

Giải trình:

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

Xem thêm HashMap trong Java

HashMap <K, V Class>

Lớp HashMap dựa trên việc triển khai Map. Như chúng ta đã thảo luận trước đó, khóa phải là duy nhất và phải có triển khai Object == (bằng toán tử) và Object.hashCode nhất quán. Chúng ta cũng có thể sử dụng null làm khóa. Các phần tử trong Map có thể theo bất kỳ thứ tự nào. Thứ tự lặp lại chỉ thay đổi nếu bản đồ được sửa đổi. Nếu chúng tôi lặp lại Map, giá trị của Map sẽ được lặp lại theo thứ tự như khóa được liên kết của chúng.

Map<String, int> grades = {
    'John': 90,
    'Jane': 95,
    'Jim': 80,
  };

  grades.forEach((student, grade) {
    print('$student got a grade of $grade');
  });

  // Thêm phần tử vào HashMap
  grades['Tom'] = 85;

  // Xóa phần tử khỏi HashMap
  grades.remove('Jim');

  // Lấy giá trị của phần tử theo key
  int? johnsGrade = grades['John'];
  print(johnsGrade); // 90

  // Kiểm tra phần tử có tồn tại trong HashMap
  print(grades.containsKey('Jane')); // true
  print(grades.containsKey('Jim')); // false

Trong ví dụ trên, chúng ta đã tạo một HashMap tên grades với key là tên sinh viên và value là điểm số. Sau đó chúng ta sử dụng vòng lặp forEach để duyệt qua từng phần tử trong HashMap và in ra màn hình. Chúng ta cũng có thể thêm, xóa và lấy giá trị của phần tử trong HashMap.

Xem thêm Queue trong Python

List

List trong Dart là một kiểu dữ liệu cho phép lưu trữ nhiều phần tử và cho phép truy cập vào chúng thông qua chỉ số. List được sắp xếp theo thứ tự mà các phần tử được thêm vào.

Sets

Set trong Dart là một kiểu dữ liệu cho phép lưu trữ các giá trị duy nhất, tức là không có phần tử nào được lặp lại trong Set. Set không theo thứ tự của các phần tử.

Xem thêm queue trong c++

Queue

Trong Dart, Queue là một lớp trong thư viện dart:collection cho phép lưu trữ và quản lý các phần tử theo thứ tự vào và ra khỏi danh sách. Queue cho phép thêm phần tử vào cuối danh sách và lấy phần tử ra từ đầu danh sách. Điều này tương tự như việc thêm vào và lấy ra các phần tử từ một hàng đợi.

Dưới đây là một ví dụ về cách sử dụng Queue trong Dart:

import 'dart:collection';

void main() {
  // Khai báo Queue rỗng
  Queue<String> queue = Queue();

  // Thêm phần tử vào Queue
  queue.add('Apple');
  queue.add('Banana');
  queue.add('Orange');

  // Lấy phần tử ra từ Queue
  String firstElement = queue.removeFirst();
  print(firstElement); // In ra 'Apple'

  String secondElement = queue.removeFirst();
  print(secondElement); // In ra 'Banana'

  // Lấy số lượng phần tử trong Queue
  print(queue.length); // In ra 1

  // Kiểm tra Queue có trống hay không
  print(queue.isEmpty); // In ra false

  // Duyệt qua các phần tử trong Queue
  for (var element in queue) {
    print(element);
  }
}

Trong ví dụ trên, chúng ta đã import lớp Queue từ thư viện dart:collection. Sau đó, chúng ta đã tạo một Queue rỗng bằng cách sử dụng Queue<String> queue = Queue(). Chúng ta đã thêm các phần tử ‘Apple’, ‘Banana’, và ‘Orange’ vào Queue bằng cách sử dụng phương thức add(). Chúng ta có thể lấy phần tử ra từ Queue bằng cách sử dụng phương thức removeFirst()

Xem thêm priority queue trong c++

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now