Thứ Năm, 21 tháng 2, 2019

Học lập trình Java - Java - Bộ sưu tập Khung

Trước Học lập trình Java 2, Java đã cung cấp các lớp ad hoc như Dictionary, Vector, Stackvà Properties để lưu trữ và thao tác các nhóm đối tượng. Mặc dù các lớp này khá hữu ích, nhưng chúng thiếu một chủ đề trung tâm, thống nhất. Do đó, cách bạn sử dụng Vector khác với cách bạn sử dụng Thuộc tính.

Khung bộ sưu tập được thiết kế để đáp ứng một số mục tiêu, chẳng hạn như

Khung phải có hiệu suất cao. Việc triển khai cho các bộ sưu tập cơ bản (mảng động, danh sách được liên kết, cây và hashtables) có hiệu quả cao.

Học lập trình Java chuyên nghiệp
Học lập trình Java chuyên nghiệp

Khung phải cho phép các loại bộ sưu tập khác nhau hoạt động theo cách tương tự và với mức độ tương tác cao.

Khung phải mở rộng và / hoặc điều chỉnh một bộ sưu tập dễ dàng.

Hướng tới mục tiêu này, toàn bộ khung bộ sưu tập được thiết kế xung quanh một bộ giao diện tiêu chuẩn. Một số triển khai tiêu chuẩn như LinkedList, Hashset và Treeset , của các giao diện này được cung cấp mà bạn có thể sử dụng nguyên trạng và bạn cũng có thể triển khai bộ sưu tập của riêng mình, nếu bạn chọn Học lập trình Java.

Khung bộ sưu tập là một kiến ​​trúc thống nhất để đại diện và thao tác các bộ sưu tập. Tất cả các khung bộ sưu tập có chứa những điều sau đây

Giao diện - Đây là các loại dữ liệu trừu tượng đại diện cho các bộ sưu tập. Các giao diện cho phép các bộ sưu tập được thao tác độc lập với các chi tiết đại diện của chúng. Trong các ngôn ngữ hướng đối tượng, các giao diện thường tạo thành một hệ thống phân cấp.

Các triển khai, tức là các Lớp học - Đây là các triển khai cụ thể của các giao diện thu thập. Về bản chất, chúng là các cấu trúc dữ liệu có thể tái sử dụng.

Thuật toán - Đây là các phương thức thực hiện các tính toán hữu ích, chẳng hạn như tìm kiếm và sắp xếp, trên các đối tượng thực hiện giao diện thu thập. Các thuật toán được cho là đa hình: nghĩa là, cùng một phương pháp có thể được sử dụng trên nhiều triển khai khác nhau của giao diện bộ sưu tập thích hợp.

Ngoài các bộ sưu tập, khung công tác xác định một số giao diện và lớp bản đồ. Bản đồ lưu trữ cặp khóa / giá trị. Mặc dù bản đồ không phải là bộ sưu tậptrong việc sử dụng đúng thuật ngữ, nhưng chúng được tích hợp đầy đủ với các bộ sưu tập.

Bộ sưu tập giao diện


Khung bộ sưu tập xác định một số giao diện. Phần này cung cấp tổng quan về từng giao diện

Sr.Không.Giao diện & Mô tả
1Giao diện Bộ sưu tập
Điều này cho phép bạn làm việc với các nhóm đối tượng; nó nằm ở đầu phân cấp bộ sưu tập.
2Giao diện danh sách
Điều này mở rộng Bộ sưu tập và một thể hiện của Danh sách lưu trữ một bộ sưu tập các phần tử.
3Bộ
Điều này mở rộng Bộ sưu tập để xử lý các bộ, phải chứa các phần tử duy nhất.
4Bộ sắp xếp
Điều này mở rộng Đặt để xử lý các bộ đã sắp xếp.
5Bản đô
Điều này ánh xạ các khóa duy nhất cho các giá trị.
6Bản đồ.Entry
Điều này mô tả một yếu tố (một cặp khóa / giá trị) trong bản đồ. Đây là một lớp bên trong của Bản đồ.
7Bản đồ được sắp xếp
Điều này mở rộng Bản đồ để các khóa được duy trì theo thứ tự tăng dần.
số 8Bảng liệt kê
Đây là giao diện kế thừa xác định các phương thức mà bạn có thể liệt kê (lấy từng cái một) các phần tử trong một bộ sưu tập các đối tượng. Giao diện cũ này đã được Iterator áp dụng.

Các lớp học sưu tập

Học lập trình Java cung cấp một tập hợp các lớp bộ sưu tập tiêu chuẩn thực hiện các giao diện Bộ sưu tập. Một số lớp cung cấp các triển khai đầy đủ có thể được sử dụng nguyên trạng và các lớp khác là lớp trừu tượng, cung cấp các triển khai khung xương được sử dụng làm điểm khởi đầu để tạo các bộ sưu tập cụ thể.

Các lớp thu thập tiêu chuẩn được tóm tắt trong bảng sau

Sr.Không.Lớp & Mô tả
1Tóm tắt
Triển khai hầu hết giao diện Collection.
2Tóm tắt

Mở rộng AbstractCollection và thực hiện hầu hết giao diện Danh sách.
3Tóm tắt SequentialList

Mở rộng AbstractList để sử dụng bởi một bộ sưu tập sử dụng tuần tự thay vì truy cập ngẫu nhiên các phần tử của nó.
4Danh sách liên kết
Triển khai một danh sách được liên kết bằng cách mở rộng AbstractSequentialList.
5Lập danh sách
Triển khai một mảng động bằng cách mở rộng AbstractList.
6Tóm tắt
Mở rộng AbstractCollection và thực hiện hầu hết giao diện Set.
7Hashset

Mở rộng Tóm tắt để sử dụng với bảng băm.
số 8LinkedHashset
Mở rộng Hashset để cho phép lặp lại thứ tự chèn.
9Cây cối
Triển khai một bộ được lưu trữ trong một cây. Mở rộng Tóm tắt.
10Tóm tắt
Triển khai hầu hết giao diện Bản đồ.
11Bản đồ băm
Mở rộng AbstractMap để sử dụng bảng băm.
12Bản đồ cây
Mở rộng Tóm tắt Bản đồ để sử dụng cây.
13Bản đồ yếu
Mở rộng AbstractMap để sử dụng bảng băm với các phím yếu.
14LinkedHashMap
Mở rộng HashMap để cho phép lặp lại thứ tự chèn.
15Danh tính HashMap
Mở rộng AbstractMap và sử dụng đẳng thức tham chiếu khi so sánh các tài liệu.
Các lớp AbstractCollection, Tóm tắt, Tóm tắt, Tóm tắt, Tóm tắt và Tóm tắtcung cấp các triển khai bộ xương của các giao diện bộ sưu tập cốt lõi, để giảm thiểu nỗ lực cần thiết để thực hiện chúng.

Các lớp kế thừa sau được định nghĩa bởi Học lập trình Java đã được thảo luận trong chương trước

Sr.Không.Lớp & Mô tả
1Vectơ
Điều này thực hiện một mảng động. Nó tương tự như ArrayList, nhưng với một số khác biệt.
2Cây rơm
Stack là một lớp con của Vector thực hiện ngăn xếp đầu tiên vào trước ra trước tiêu chuẩn.
3Từ điển
Từ điển là một lớp trừu tượng đại diện cho kho lưu trữ khóa / giá trị và hoạt động giống như Bản đồ.
4Hashtable
Hashtable là một phần của java.util gốc và là một triển khai cụ thể của Từ điển.
5Tính chất
Thuộc tính là một lớp con của Hashtable. Nó được sử dụng để duy trì danh sách các giá trị trong đó khóa là Chuỗi và giá trị cũng là Chuỗi.
6Bitset

Một lớp BitSet tạo ra một loại mảng đặc biệt chứa các giá trị bit. Mảng này có thể tăng kích thước khi cần thiết.

Các thuật toán thu thập


Khung bộ sưu tập xác định một số thuật toán có thể được áp dụng cho các bộ sưu tập và bản đồ. Các thuật toán này được định nghĩa là các phương thức tĩnh trong lớp Bộ sưu tập.

Một số phương thức có thể đưa ra ClassCastException , xảy ra khi một nỗ lực được thực hiện để so sánh các loại không tương thích hoặc UnsupportedOperationException , xảy ra khi một nỗ lực được thực hiện để sửa đổi bộ sưu tập không thể thay đổi.

Bộ sưu tập xác định ba biến tĩnh: EMPTY_SET, EMPTY_LIST và EMPTY_MAP. Tất cả đều bất biến.

Sr.Không.Thuật toán & Mô tả
1Các thuật toán thu thập
Dưới đây là danh sách tất cả các thuật toán thực hiện.

Làm thế nào để sử dụng một Iterator?

Thông thường, Học lập trình Java sẽ muốn quay vòng qua các yếu tố trong một bộ sưu tập. Ví dụ, bạn có thể muốn hiển thị từng yếu tố.

Cách dễ nhất để làm điều này là sử dụng một trình vòng lặp, là một đối tượng thực hiện giao diện Iterator hoặc ListIterator.

Iterator cho phép bạn quay vòng qua một bộ sưu tập, thu được hoặc loại bỏ các phần tử. ListIterator mở rộng Iterator để cho phép truyền tải hai chiều danh sách và sửa đổi các phần tử.

Sr.Không.Phương pháp lặp và mô tả
1Sử dụng trình lặp Java
Dưới đây là danh sách tất cả các phương thức với các ví dụ được cung cấp bởi giao diện Iterator và ListIterator.

Làm thế nào để sử dụng một bộ so sánh?

Cả hai yếu tố lưu trữ TreeSet và TreeMap theo thứ tự được sắp xếp. Tuy nhiên, nó là bộ so sánh xác định chính xác ý nghĩa của thứ tự sắp xếp .

Giao diện này cho phép chúng tôi sắp xếp một bộ sưu tập nhất định bất kỳ số lượng các cách khác nhau. Ngoài ra giao diện này có thể được sử dụng để sắp xếp bất kỳ trường hợp nào của bất kỳ lớp nào (ngay cả các lớp chúng tôi không thể sửa đổi).

Sr.Không.Phương pháp lặp và mô tả
1Sử dụng trình so sánh Java
Dưới đây là danh sách tất cả các phương thức với các ví dụ được cung cấp bởi Giao diện so sánh.

Tóm lược

Khung bộ sưu tập Học lập trình Java cung cấp cho người lập trình quyền truy cập vào các cấu trúc dữ liệu được đóng gói sẵn cũng như các thuật toán để thao tác chúng.

Một bộ sưu tập là một đối tượng có thể chứa các tham chiếu đến các đối tượng khác. Các giao diện bộ sưu tập khai báo các hoạt động có thể được thực hiện trên từng loại bộ sưu tập.

Các lớp và giao diện của khung bộ sưu tập nằm trong gói java.util.

Không có nhận xét nào:

Đăng nhận xét

Lập trình Java - Ngoại lệ

Một ngoại lệ (hoặc sự kiện đặc biệt) là một vấn đề phát sinh trong quá trình thực hiện chương trình. Khi xảy ra Ngoại lệ , luồng bình thường...