- vừa được xem lúc

Triển khai cấu trúc dữ liệu Mảng tùy chỉnh trong TypeScript

0 0 1

Người đăng: Vũ Tuấn

Theo Viblo Asia

Bạn đang muốn hiểu sâu hơn về các cấu trúc dữ liệu trong TypeScript? Hãy cùng khám phá cách tạo ra một triển khai mảng tùy chỉnh vượt ra ngoài kiểu mảng có sẵn. Bài viết này sẽ hướng dẫn bạn xây dựng một lớp ArrayList mô phỏng một số chức năng của mảng nguyên thủy trong JavaScript.

Lớp ArrayList

Chúng ta sẽ bắt đầu bằng cách định nghĩa lớp ArrayList như sau:

class ArrayList<T> { private items: T[]; private size: number; constructor() { this.items = []; this.size = 0; } // Methods will be implemented here
}

ArrayList được thiết kế theo kiểu generic, cho phép nó chứa bất kỳ kiểu dữ liệu nào T. Chúng ta sử dụng mảng riêng tư items để lưu trữ các phần tử và thuộc tính size để theo dõi số lượng phần tử hiện có.

Các thao tác cơ bản

Cùng triển khai một vài thao tác cơ bản với mảng:

1. Thêm phần tử

public add(element: T): void { this.items[this.size] = element; this.size++;
}

2. Lấy phần tử theo chỉ mục

public get(index: number): T { if (index < 0 || index >= this.size) { throw new Error("Index out of bounds"); } return this.items[index];
}

3. Xóa phần tử

public remove(index: number): T { if (index < 0 || index >= this.size) { throw new Error("Index out of bounds"); } const removedItem = this.items[index]; for (let i = index; i < this.size - 1; i++) { this.items[i] = this.items[i + 1]; } this.size--; return removedItem;
}

Tính năng bổ sung

Chúng ta sẽ thêm một số phương thức khác để tăng tính tiện dụng cho ArrayList:

4. Lấy kích thước

public getSize(): number { return this.size;
}

5. Kiểm tra rỗng

public isEmpty(): boolean { return this.size === 0;
}

6. Xóa toàn bộ phần tử

public clear(): void { this.items = []; this.size = 0;
}

Sử dụng ArrayList

Dưới đây là cách sử dụng lớp ArrayList tùy chỉnh của chúng ta:

const list = new ArrayList<number>(); list.add(1);
list.add(2);
list.add(3); console.log(list.get(1)); // Output: 2
console.log(list.getSize()); // Output: 3 list.remove(1);
console.log(list.getSize()); // Output: 2
console.log(list.get(1)); // Output: 3 list.clear();
console.log(list.isEmpty()); // Output: true

Kết luận

Bằng cách tự triển khai lớp ArrayList, chúng ta đã có thêm cái nhìn sâu sắc về cách mảng hoạt động bên trong. Kiến thức này rất hữu ích khi tối ưu mã hoặc làm việc với các cấu trúc dữ liệu phức tạp hơn.

Hãy nhớ rằng, mặc dù triển khai này mang tính giáo dục, nhưng các mảng tích hợp sẵn trong TypeScript đã được tối ưu hóa rất tốt và nên được sử dụng trong phần lớn các trường hợp thực tế. Tuy nhiên, hiểu được những khái niệm này sẽ giúp bạn trở thành một lập trình viên TypeScript giỏi hơn.

Chúc bạn code vui vẻ!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 550

- vừa được xem lúc

Type annotation vs Type Inference - Typescript

Trong bài viết này, chúng ta sẽ tìm hiểu kỹ về TypeScript bằng cách tìm hiểu sự khác biệt giữa kiểu chú thích và kiểu suy luận. Tôi sẽ cho rằng bạn có một số kinh nghiệm về JavaScript và biết về các kiểu cơ bản, như chuỗi, số và boolean.

0 0 58

- vừa được xem lúc

Type Annotation và Type Inference trong TypeScript là gì?

Khi làm việc với javascript chắc hẳn các bạn đã quá quen với việc dùng biến mà không cần phải quan tâm đến kiểu dữ liệu của nó là gì phải không? Đúng là mới đầu tiếp cận với Typescript mình cũng cảm thấy nó khá là phiền vì cần phải khai báo đủ type để nó chặt chẽ hơn. Lúc đó mình còn nghĩ: " JavaScr

0 0 43

- vừa được xem lúc

Tìm hiểu TypeScript và kiến thức cơ bản

TypeScript là gì. TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules.

0 0 60

- vừa được xem lúc

TypeScript - P1: Vì sao TypeScript được yêu thích đến vậy?

Trải nghiệm thực tế. Trước khi là một Web Developer, tôi là một Mobile Developer và Java là thứ mà tôi từng theo đuổi.

0 1 75

- vừa được xem lúc

4 Tính năng rất hay từ TypeScript

Xin chào các bạn hôm nay mình xin chia sẽ những tính năng rất hay của TypeScript (TS), các bạn cùng tìm hiểu nhé. Ngoài việc set Type cho biến, tham số hay function thì ví dụ khi bạn nhìn vào một tham

0 0 103