22
Báo cáo lý thuyết Java đề tài :container in Depth Nhóm 17: Nguyễn Quang Trung Đinh Thị Thu Trang Nguyễn Thị Trâm

BáO CáO Lý ThuyếT Java

Embed Size (px)

DESCRIPTION

container in depth

Citation preview

Page 1: BáO CáO Lý ThuyếT Java

Báo cáo lý thuyết Java

đề tài :container in Depth

Nhóm 17:Nguyễn Quang TrungĐinh Thị Thu Trang Nguyễn Thị Trâm

Page 2: BáO CáO Lý ThuyếT Java

Tóm Tắt Nội dung chính

• Mở đầu

• Tại sao phải cần bộ chứa ?

• Giới thiệu các giải pháp về bộ chứa trong java

• ứng dụng của bộ chứa trong thực tế

• Kết luận

Page 3: BáO CáO Lý ThuyếT Java

Mở đầuNgày nay trên thế giới có rất nhiều ngôn ngữ lập trình đang được sử dụng. Mỗi một ngôn ngữ lại có những điểm mạnh riêng biệt. Một trong những ngôn ngữ đang được sử dụng rất rộng rãi hiện nay chính là java . Vậy tại sao trong một rừng các loại ngôn ngữ lập trình như VB,C# v..v thì java lại có một chỗ đứng trong giới lập trình như vậy.

Có rất nhiều lí do đc đưa ra đó là

Java là một ngôn ngữ mạnh mẽ

Bảo mật tốt

Dễ dùng v.v

Ngày hôm nay chúng ta đề cập đến một trong những khía cạnh đó. Đó là chính là bộ chứa(container) trong java

Page 4: BáO CáO Lý ThuyếT Java

Vậy bộ chứa là gì

Như chúng ta đã biết trong quá trình lập trình thì chúng ta thường xuyên phải làm việc với một tập hợp các đối tượng. Trong lập trình C và C++ hẳn nhiều người đã quen với khái niệm mảng(Array). Và con trỏ ( pointer)

Lợi ích của mảng

Dễ hiểu, dễ dùng,thuận tiện

Cho các bài toán đơn giản

Nhưng một vấn đề đặt đáng quan

Tâm khi sử dụng mảng hay con trỏ là

việc khi tạo một danh sách đối tượng

Thì số lượng đối tượng có thể đưa

vào mảng sẽ bị giới hạn và không có tính mềm dẻo

Page 5: BáO CáO Lý ThuyếT Java

Không những thế một loạt yêu cầu đặt ra với danh sách các đối tượng này như yêu cầu về tìm kiếm, cập nhật đối tượng

Page 6: BáO CáO Lý ThuyếT Java

Bộ chứa để làm gì

Để giải quyết

Page 7: BáO CáO Lý ThuyếT Java

Các mô hình bộ chứa trong java

Các mô hình bộ chứa thông dụng trong java

•Một số cấu trúc dữ liệu phổ biến: Mảng (Array) Danh sách liên kết (Linked List) Ngăn xếp (Stack) Hàng đợi (Queue) Cây (Tree)

Không giống như ngôn ngữ C, C++ , Java không tồn tại khái niệm con trỏ

Page 8: BáO CáO Lý ThuyếT Java

Linked list(danh sách liên kết)

• Linked list là cấu trúc gồm các node liên kết với nhau thông qua các mối liên kết. Node cuối linked list được đặt là null để đánh dấu kết thúc danh sách.

• Linked list giúp tiết kiệm bộ nhớ so với mảng trong các bài toán xử lý danh sách.

• Khi chèn/xoá một node trên linked list, không phải dãn/dồn các phần tử như trên mảng.

• Việc truy nhập trên linked list luôn phải tuần tự.

Page 9: BáO CáO Lý ThuyếT Java

Mô tả danh sách liên kết :

Thể hiện Node thông qua lớp tự tham chiếu (self-referential class)class Node { private int data; private Node nextNode; // constructors and methods ...}

Một nút được tạo ra và xác định nút nằm sau nó, nếu nút là nút cuối cùng của danh sách thì nút đằng sau nó sẽ có giá trị là null;

Page 10: BáO CáO Lý ThuyếT Java

Cài đặt linked ListChúng ta sẽ ví dụ vời cái đặt danh sách liên kết đơn:class ListNode { int data; ListNode nextNode;

ListNode(int value) {

this(value, null); }

ListNode(int value, ListNode node) {

data = value; nextNode = node;

}

int getData() { return data; } ListNode getNext() { return nextNode; }}

Page 11: BáO CáO Lý ThuyếT Java
Page 12: BáO CáO Lý ThuyếT Java
Page 13: BáO CáO Lý ThuyếT Java
Page 14: BáO CáO Lý ThuyếT Java
Page 15: BáO CáO Lý ThuyếT Java
Page 16: BáO CáO Lý ThuyếT Java
Page 17: BáO CáO Lý ThuyếT Java
Page 18: BáO CáO Lý ThuyếT Java

stackStack la

Page 19: BáO CáO Lý ThuyếT Java

Hàng đợi (queue)

-Khác với Stack, Queue là một kiểu dữ liệu trừu tượng mà cơ chế cập nhật và truy xuất xảy ra ở hai đầu khác nhau và theo quy tắc vào trước ra trước (First In − First Out ).Viết tắt là FIFO

- - Queue là một kiểu danh sách tuyến tính đặc biệt mà phép thêm vào chỉ được thực hiện ở đầu danh sách( gọi là cuối hàng rear), còn phép loại bỏ thì được thực hiện ở đầu kia (gọi là đầu hàng front

-Ví dụ: Queue giống như một hàng đợi mua vé xem phim : người mua xếp hàng trước sẽ được mua vé trước còn người mua vé xếp hàng sau thì mua vé sau

Page 20: BáO CáO Lý ThuyếT Java
Page 21: BáO CáO Lý ThuyếT Java

stackStack la

Page 22: BáO CáO Lý ThuyếT Java

Kết luận