Bài giảng Cấu trúc dữ liệu: Chương 14 - Nguyễn Xuân Vinh
lượt xem 3
download
Bài giảng Cấu trúc dữ liệu - Chương 14: Conllectinons framework introduction to collections, what is a collections framework, collections interface, collections implementations, collections comparision,...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu: Chương 14 - Nguyễn Xuân Vinh
- GV: NGUYỄN XUÂN VINH CẤU TRÚC DỮ LIỆU DATA STRUCTURES [214441] COLLECTIONs FRAMEWORK MÔN: CẤU TRÚC DỮ LIỆU Nguyễn Xuân Vinh nguyenxuanvinh@hcmuaf.edu. 6/12/14 vn /XX 1
- GV: NGUYỄN XUÂN VINH Introduction to Collections • A collection — sometimes called a container — is simply an object that groups multiple elements into a single unit. • Collections are used to store, retrieve, manipulate, and communicate aggregate data. • Represent data items that form a natural group, such as: MÔN: CẤU TRÚC DỮ LIỆU – A poker hand (a collection of cards) – A mail folder (a collection of letters) – A telephone directory (a mapping of names to phone numbers) 6/12/14 /XX 2
- GV: NGUYỄN XUÂN VINH What is a Collections Framework • A collections framework is a unified architecture for representing and manipulating collections. • All collections frameworks contain the following: – Interfaces: These are abstract data types that represent collections MÔN: CẤU TRÚC DỮ LIỆU – Implementations: These are the concrete implementations of the collection interfaces. – Algorithms: These are the methods that perform useful computations, such as searching and sorting 6/12/14 /XX 3
- 4 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Collections Interface
- 5 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Collections Implementations
- 6 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Collections Implementations
- 7 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Collection Implementations
- 8 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Concrete Classes: Collection
- 9 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Concrete Class: MAP
- 10 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Collections Comparision
- GV: NGUYỄN XUÂN VINH 1) Collection Interface:Traversing Collections • There are two ways to traverse collections: – (1) with the for-each construct for (Object o : collection) System.out.println(o); MÔN: CẤU TRÚC DỮ LIỆU – (2) by using Iterators. Iterator iterator = collection.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } 6/12/14 /XX 11
- GV: NGUYỄN XUÂN VINH 2) Collection Interface: Bulk Operations • containsAll — returns true if the target Collection contains all of the elements in the specified Collection. • addAll — adds all of the elements in the specified Collection to the target Collection. • removeAll — removes from the target Collection all of its elements MÔN: CẤU TRÚC DỮ LIỆU that are also contained in the specified Collection. • retainAll — removes from the target Collection all its elements that are not also contained in the specified Collection. That is, it retains only those elements in the target Collection that are also contained in the specified Collection. • clear — removes all elements from the Collection. 6/12/14 /XX 12
- GV: NGUYỄN XUÂN VINH 3) Collection Interface: Array Operations • The toArray methods are provided as a bridge between collections and older APIs that expect arrays on input. • For example, suppose that c is a Collection: Object[] a = c.toArray(); String[] a = c.toArray(new String[0]); MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /XX 13
- GV: NGUYỄN XUÂN VINH Set Interface public interface Set extends Collection { // Basic operations int size(); boolean isEmpty(); boolean contains(Object element); MÔN: CẤU TRÚC DỮ LIỆU // optional boolean add(E element); // optional boolean remove(Object element); Iterator iterator(); 6/12/14 // Bulk operations boolean containsAll(Collection c); /XX // optional 14 boolean addAll(Collection
- GV: NGUYỄN XUÂN VINH 1) Set Interface: Basic Operations public class FindDups { public static void main(String[] args) { Set s = new HashSet(); for (String a : args) if (!s.add(a)) MÔN: CẤU TRÚC DỮ LIỆU System.out.println("Duplicate detected: " + a); System.out.println(s.size() + " distinct words: " + s); } } Run: 6/12/14 java FindDups i came i saw i left /XX Output produced: Duplicate detected: i 15
- GV: NGUYỄN XUÂN VINH 2) Set Interface: Bulk Operations • s1.containsAll(s2) — returns true if s2 is a subset of s1. (s2 is a subset of s1 if set s1 contains all of the elements in s2.) • s1.addAll(s2) — transforms s1 into the union of s1 and s2. (The union of two sets is the set containing all of the elements contained in either set.) MÔN: CẤU TRÚC DỮ LIỆU • s1.retainAll(s2) — transforms s1 into the intersection of s1 and s2. (The intersection of two sets is the set containing only the elements common to both sets.) • s1.removeAll(s2) — transforms s1 into the (asymmetric) set difference of s1 and s2. (For example, the set difference of s1 minus s2 is the set containing all of the elements found in s1 but not in s2.) 6/12/14 /XX 16
- 17 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH HỎI ĐÁP
- GV: NGUYỄN XUÂN VINH List Interface • A List is an ordered Collection (sometimes called a sequence). Lists may contain duplicate elements. In addition to the operations inherited from Collection, the List interface includes operations for the following: – Positional access — manipulates elements based on their MÔN: CẤU TRÚC DỮ LIỆU numerical position in the list – Search — searches for a specified object in the list and returns its numerical position – Iteration — extends Iterator semantics to take advantage of the list's sequential nature – Range-view — performs arbitrary range operations on the list. 6/12/14 /XX 18
- GV: NGUYỄN XUÂN VINH List Interface public interface List extends Collection { // Positional access E get(int index); // optional MÔN: CẤU TRÚC DỮ LIỆU E set(int index, E element); // optional boolean add(E element); // optional void add(int index, E element); // optional 6/12/14 E remove(int index); // optional /XX boolean addAll(int index, Collection
- GV: NGUYỄN XUÂN VINH List Interface: Interators public interface ListIterator extends Iterator { boolean hasNext(); E next(); boolean hasPrevious(); E previous(); int nextIndex(); MÔN: CẤU TRÚC DỮ LIỆU int previousIndex(); void remove(); //optional void set(E e); //optional void add(E e); //optional } 6/12/14 /XX 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 174 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 79 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 57 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 158 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 106 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 47 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
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