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
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
Mở đầu Ngà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
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
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
Bộ chứa để làm gì Để giải quyết
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ỏ
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ự.
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;
Cài đặt linked List Chú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;  } }
 
 
 
 
 
 
 
stack Stack la
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
 
stack Stack la
Kết luận

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

  • 1.
    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
  • 2.
    Tóm Tắt Nộidung 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
  • 3.
    Mở đầu Ngàynay 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
  • 4.
    Vậy bộ chứalà 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
  • 5.
    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
  • 6.
    Bộ chứa đểlàm gì Để giải quyết
  • 7.
    Các mô hìnhbộ 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ỏ
  • 8.
    Linked list(danh sáchliê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ự.
  • 9.
    Mô tả danhsá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;
  • 10.
    Cài đặt linkedList Chú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; } }
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
    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
  • 20.
  • 21.
  • 22.