Java (đọc như "Gia-va") là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy. Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C#. Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có. | Lập trình Java cơ bản- Bài 8 (Collections) Lập trình Java cơ bản Cao Đức Thông Trần Minh Tuấn cdthong@, tmtuan@ 1 Bài 8. Collections • Cấu trúc dữ liệu trong Java • Linked List • Stack và Queue • Tree • Collections Framework • Danh sách (List) • Tập hợp (Set) • Bảng ánh xạ (Map) • Bài tập 2 Cấu trúc dữ liệu • Cấu trúc dữ liệu là cách tổ chức dữ liệu để giải quyết vấn đề. • 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) 3 Linked List • 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ự. 4 Linked List • 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 . } 15 10 5 Linked List • Một linked list được quản lý bởi tham chiếu tới node đầu và node cuối. firstNode lastNode H D . Q 6 Cài đặt Linked List // Dinh nghia mot node trong linked list 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; } } 7 Cài đặt Linked List // Dinh nghia lop LinkedList public class LinkedList { private ListNode firstNode; private ListNode lastNode; public LinkedList() { firstNode = lastNode = null; } public void insertAtFront(int insertItem) { .