Lập trình Java cơ bản

62 1.4K 11
Lập trình Java cơ bản

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình Java cơ bản

1Lập trình Java bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn 2Bà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 3Cấ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) 4Linked 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ự. 5Linked 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 6Linked List•Một linked list được quản lý bởi tham chiếu tới node đầu và node cuối.H D QfirstNode lastNode . 7Cà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; }} 8Cài đặt Linked List// Dinh nghia lop LinkedListpublic class LinkedList { private ListNode firstNode; private ListNode lastNode; public LinkedList() { firstNode = lastNode = null; } public void insertAtFront(int insertItem) {if ( isEmpty() ) firstNode = lastNode = new ListNode( insertItem );else firstNode = new ListNode( insertItem, firstNode ); } 9Cài đặt Linked List public void insertAtBack( int insertItem ) { if ( isEmpty() ) firstNode = lastNode = new ListNode( insertItem ); else lastNode = lastNode.nextNode = new ListNode( insertItem ); } public int removeFromFront() { int removeItem = -1; if ( ! isEmpty() ) { removeItem = firstNode.data; if ( firstNode == lastNode ) firstNode = lastNode = null; else firstNode = firstNode.nextNode; } return removeItem; } 10Cài đặt Linked List public int removeFromBack() {int removeItem = -1;if ( ! isEmpty() ){ removeItem = lastNode.data; if ( firstNode == lastNode )firstNode = lastNode = null; else {ListNode current = firstNode;while ( current.nextNode != lastNode ) current = current.nextNode;lastNode = current;current.nextNode = null; }}return removeItem; } [...]... } private void postorder( TreeNode node ) { if ( node == null ) return; postorder( node.leftNode ); postorder( node.rightNode ); System.out.print( node.data + " " ); } } 1 Lập trình Java bản Cao Đức Thơng - Trần Minh Tuấn cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn 19 Sử dụng Stack public class StackTest { public static void main(String[] args) { Stack stack = new Stack(); stack.push(5); stack.push(7); stack.push(4); stack.push(8); stack.print(); stack.pop(); stack.pop(); stack.print(); ... các phương thức kế thừa từ Collection. 33 Collections Framework • Các collection đầu tiên của Java: • Mảng • Vector: Mảng động • Hastable: Bảng băm • Collections Framework (từ Java 1.2) • Là một kiến trúc hợp nhất để biểu diễn và thao tác trên các collection. • Giúp cho việc xử lý các collection độc lập với biểu diễn chi tiết bên trong của chúng. 12 Mô tả insertAtFront 7 11 firstNode 12 new ListNode (a) 7... một collection, ta thể dùng iterator để duyệt các phần tử của nó. 17 Stack • Stack là một cấu trúc theo kiểu LIFO (Last In First Out), phần tử vào sau cùng sẽ được lấy ra trước. • Hai thao tác bản trên Stack • Chèn phần tử: Ln chèn vào đỉnh Stack (push) • Lấy ra phần tử: Ln lấy ra từ đỉnh Stack (pop) 9 Cài đặt Linked List public void insertAtBack( int insertItem ) { if ( isEmpty() ) ... names.add(new String("Quynh Chi")); names.add(new String("Thu Hang")); System.out.println(names); } } 43 Giao tiếp Map • Giao tiếp Map cung cấp các thao tác xử lý trên các bảng ánh xạ (Bảng ánh xạ lưu các phần tử theo khố và khơng được 2 khố trùng nhau). • Một số phương thức của Map • Object put(Object key, Object value); • Object get(Object key); • Object remove(Object key); • boolean... Các lớp cài đặt Collection cung cấp phương thức trả về iterator trên các phần tử của chúng. Collection c; Iterator it = c.iterator(); 50 Ví dụ 1: TreeSet // This program sorts a set of names import java. util.*; public class TreeSetTest1 { public static void main(String[] args) { SortedSet names = new TreeSet(); names.add(new String("Minh Tuan")); names.add(new String("Hai Nam")); ... firstNode = lastNode = new ListNode( insertItem ); else firstNode = new ListNode( insertItem, firstNode ); } 45 Giao tiếp SortedMap • Giao tiếp SortedMap kế thừa từ Map, nó cung cấp thao tác trên các bảng ánh xạ với khố thể so sánh được. • Giống như SortedSet, các đối tượng khoá đưa vào trong SortedMap phải cài đặt giao tiếp Comparable hoặc lớp cài đặt SortedMap phải nhận một Comparator trên . 1Lập trình Java cơ bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn 2Bài 8. Collections•Cấu trúc dữ liệu trong Java Linked. (Last In First Out), phần tử vào sau cùng sẽ được lấy ra trước.•Hai thao tác cơ bản trên Stack•Chèn phần tử: Luôn chèn vào đỉnh Stack (push)•Lấy ra phần tử:

Ngày đăng: 22/08/2012, 11:06

Hình ảnh liên quan

• Bảng ánh xạ (Map) - Lập trình Java cơ bản

ng.

ánh xạ (Map) Xem tại trang 2 của tài liệu.
• Hastable: Bảng băm - Lập trình Java cơ bản

astable.

Bảng băm Xem tại trang 33 của tài liệu.
cung cấp thao tác trên các bảng ánh xạ với khoá có thể so sánh được. - Lập trình Java cơ bản

cung.

cấp thao tác trên các bảng ánh xạ với khoá có thể so sánh được Xem tại trang 45 của tài liệu.
• HashSet: Bảng băm. - Lập trình Java cơ bản

ash.

Set: Bảng băm Xem tại trang 48 của tài liệu.
• HashMap: Bảng băm (cài đặt của Map). - Lập trình Java cơ bản

ash.

Map: Bảng băm (cài đặt của Map) Xem tại trang 49 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan