Bài giảng Lập trình hướng đối tượng: Chương 5 - Châu Thị Bảo Hà
lượt xem 2
download
Bài giảng Lập trình hướng đối tượng - Chương 5 trình bày những nội dung liên quan đến tập hợp trên java. Sau khi học xong chương này người học có thể: Phân biệt được tập hợp và mảng, phân biệt được các đặc trưng của các Collection interface, biết cách chọn loại tập hợp thích hợp để giải quyết bài toán. Mời các bạn tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 5 - Châu Thị Bảo Hà
- Chương 5 TẬP HỢP TRÊN JAVA
- Mục tiêu • Phân biệt tập hợp và mảng • Phân biệt các đặc trưng của các Collection interface • Chọn loại tập hợp thích hợp để giải quyết bài toán
- Nội dung 5.1. Khái niệm về tập hợp 5.2. So sánh tập hợp và mảng 5.3. Các lớp tập hợp trong Java 5.4. Ứng dụng của tập hợp trong lập trình
- 5.1. Khái niệm về tập hợp • Tập hợp là đối tượng có khả năng chứa các đối tượng khác • Các đối tượng của tập hợp có thể thuộc nhiều loại dữ liệu khác nhau • Các thao tác thông thường trên tập hợp o Thêm/Xoá đối tượng vào/ra tập hợp o Kiểm tra một đối tượng có tồn tai trong tập hợp hay không o Lấy một đối tượng từ tập hợp o Duyệt các đối tượng trong tập hợp o Xoá toàn bộ tập hợp o …
- 5.1. Khái niệm về tập hợp Collections Framework • Collections Framework (từ Java 1.2) o Là một kiến trúc hợp nhất để biểu diễn và thao tác trên các loại tập hợp o Giúp cho việc xử lý tập hợp độc lập với biểu diễn chi tiết bên trong của chúng • Một số lợi ích của Collections Framework o Giảm thời gian lập trình o Tăng cường hiệu năng chương trình o Dễ mở rộng các collection mới o Sử dụng lại mã chương trình
- 5.1. Khái niệm về tập hợp Collections Framework • Collections Framework bao gồm: o Interfaces: Là các interface thể hiện tính chất của các kiểu collection khác nhau như List, Set, Map o Implementations: Là các lớp collection có sẵn được cài đặt các collection interfaces như LinkedList, HashSet o Algorithms: Là các phương thức tĩnh để xử lý trên collection, ví dụ: sắp xếp danh sách, tìm phần tử lớn nhất...
- 5.1. Khái niệm về tập hợp Collection và Map interface Interface gốc chứa các phương thức chung cho tất cả các loại collections Lưu trữ các ánh xạ từ khóa Lưu trữ không theo thứ tự đến giá trị thêm vào, không cho phép Collection Map trùng Set List Queue SortedMap Theo cơ chế FIFO và hàng đợi ưu SortedSet tiên Các khóa được sắp Lưu trữ theo thứ tự thêm vào thứ tự Truy xuất theo chỉ mục (index) Lưu trữ các phần tử theo Có thể trùng nhau thứ tự tăng
- 5.1. Khái niệm về tập hợp So sánh một số interface List +add(E):boolean +remove(Object):boolean +get(int):E +indexOf(Object):int +contains(Object):boolean +size():int Collection +iterator():Iterator +add(E):boolean etc… +remove(Object):boolean +contains(Object):boolean +size():int SortedSet +iterator():Iterator etc… +add(E):boolean Set +remove(Object):boolean +add(E):boolean +contains(Object):boolean +remove(Object):boolean +size():int +contains(Object):boolean +iterator():Iterator +size():int +first():E +iterator():Iterator etc… +last():E etc…
- 5.1. Khái niệm về tập hợp Các phương thức của Collection interface
- 5.1. Khái niệm về tập hợp • Duy ệ t collection Các phần tử trong collection có thể được duyệt tuần tự thông qua Iterator interface • 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(); ...
- 5.1. Khái niệm về tập hợp • Duy Các phương thức của Iterator: ệt collection o boolean hasNext(): trả về true nếu còn phần tử chưa duyệt o Object next(): trả về phần tử kế o void remove(): xóa phần tử đang duyệt • Cách sử dụng: Iterator it = items.iterator(); while(it.hasNext()) { for (Item item : items) { Item item = it.next(); = System.out.println(item); System.out.println(item); } }
- 5.1. Khái niệm về tập hợp • Comparable interface Comparable interface có 1 phương thức: int compareTo(T) o Trả về 0 nếu this = other Student o Trả về một số dương nếu this > other - name o Trả về một số âm nếu this
- 5.1. Khái niệm về tập hợp Comparable interface List listStudent = new ArrayList(); listStudent.add(new Student("Fred", 3)); listStudent.add(new Student("Sam", 4)); listStudent.add(new Student("Steve", 3)); What’s the output? listStudent.add(new Student("Laura", 2)); [Laura2, Fred3, Steve3, Sam4] Collections.sort(listStudent); System.out.println(listStudent); public static
- 5.1. Khái niệm về tập hợp • Comparator interface Sử dụng trong trường hợp không thể Comparable, hoặc muốn định nghĩa thêm các thứ tự khác Comparator +compare(T o1, T o2): int +equals(Object other): boolean • Ví dụ: public class StudentNameComparator implements Comparator { public int compare(Student o1, Student o2) { return o1.getName().compareToIgnoreCase(o2.getName()); } }
- 5.1. Khái niệm về tập hợp • Ví dụ (tt): Comparator interface List listStudent = new ArrayList(); listStudent.add(new Student("Fred", 3)); listStudent.add(new Student("Sam", 4)); listStudent.add(new Student("Steve", 3)); listStudent.add(new Student("Laura", 2)); Collections.sort(listStudent, new StudentNameComparator()); System.out.println(listStudent); What’s the output? implements Comparator [Fred3, Laura2, Sam4, Steve3]
- 5.1. Khái niệm về tập hợp List interface • Kế thừa Collection, Iterable interface • Lưu trữ theo thứ tự thêm vào • Có thể trùng nhau • Truy xuất theo chỉ mục (index) • Sắp xếp List: Collections.sort(lstUser, new Comparator() { @Override public int compare(User o1, User o2) { return o2.getOld() - o1.getOld(); } });
- 5.1. Khái niệm về tập hợp Set and SortedSet interface • Set interface o Hiện thực Collection, Iterable interface o Các phần tử lưu trong Set không được trùng và không quan tâm thứ tự thêm vào o Không có phương thức riêng ngoài các phương thức kế thừa từ Collection • SortedSet interface o Hiện thực Set, Collection, Iterable interface o Hỗ trợ thao tác trên tập hợp các phần tử có thể so sánh được • Các Object đưa vào SortedSet phải có khả năng so sánh được, tức là phải implements Comparable interface
- 5.1. Khái niệm về tập hợp Queue interface • Queue: Các phần tử được truy xuất theo thứ tự First In First Out (FIFO) • Priority queue (hàng đợi ưu tiên): Thứ tự truy xuất các phần tử phụ thuộc vào giá trị của chúng • Các phương thức của Queue
- 5.1. Khái niệm về tập hợp Map interface • Lưu trữ dữ liệu theo từng cặp: khóa – giá trị (key value) • Các giá trị được lấy từ Map thông qua khóa của nó • Các khóa trong Map phải duy nhất
- 5.1. Khái niệm về tập hợp Map interface • Hai phương thức truy cập: o V put(K key, V value) // Thêm cặp keyvalue vào map o V get(Object key) // Trả về value tương ứng với key cho trước • Ba cách xem dữ liệu: o Lấy tất cả các khoá: • Set keySet(); // Trả về các khoá o Lấy tất cả các giá trị: • Collection values(); // Trả về các giá trị o Lấy tất cả các cặp khoágiá trị • Set entrySet(); // Trả về các cặp khoágiá trị
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p | 140 | 19
-
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 p | 171 | 15
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 177 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 143 | 9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 82 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 104 | 8
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 110 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan về OOP
0 p | 146 | 7
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 68 | 6
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 118 | 6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 100 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 106 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 144 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 15 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 19 | 3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p | 11 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn