Thứ Ba, 4 tháng 9, 2018

Java - Khung sưu tập

Trước Java 2, Java đã cung cấp các lớp học đặc biệt như Từ điển, Vector, Ngăn xếp và Thuộc tính để 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. Vì vậy, cách mà bạn sử dụng Vector khác với cách bạn sử dụng Properties.

Học lập trình Java 
Học lập trình Java Khung tuyển tập hợ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 liên kết, cây cối, và hashtables) đã được hiệu quả cao.

Khuôn khổ 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à có mức độ tương tác cao.

Khuôn khổ đã phải mở rộng và / hoặc thích ứng với một bộ sưu tập một cách dễ dàng.

Java Hướng tới mục đích này, toàn bộ khung công tác bộ sưu tập được thiết kế xung quanh một bộ giao diện chuẩn. Một số triển khai 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 như là-và bạn cũng có thể thực hiện bộ sưu tập của riêng bạn, nếu bạn chọn.

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

Giao diện - Đây là các kiểu dữ liệu trừu tượng đại diện cho các bộ sưu tập. 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 về biểu 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.

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

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 triển khai các giao diện bộ sưu tập. Các thuật toán được cho là đa hình: có 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 định nghĩa một số giao diện bản đồ và các lớp. Cặp khóa / giá trị lưu trữ bản đồ. Mặc dù bản đồ không phải là bộ sưu tập trong 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.

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

Khung bộ sưu tập định nghĩa một số giao diện. Phần này cung cấp tổng quan về mỗi giao diện

Sr.No.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ó ở trên cùng của 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ử được sắp xếp.
3Bộ

Thao tác này mở rộng Bộ sưu tập để xử lý các tập hợp, phải chứa các phần tử duy nhất.
4SortedSet

Đ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ị.
6Map.Entry

Điều này mô tả một phần tử (cặp khóa / giá trị) trong bản đồ. Đây là một lớp bên trong của Bản đồ.
7The SortedMap

Điều này mở rộng Bản đồ để các phím được duy trì theo thứ tự tăng dần.
số 8Điều tra

Đây là giao diện kế thừa định nghĩa 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 tập hợp các đối tượng. Giao diện kế thừa này đã được Iterator superceded.

Lớp thu thập

Java cung cấp một tập các lớp thu chuẩn để triển khai các giao diện Collection. Một số lớp cung cấp đầy đủ các triển khai có thể được sử dụng như là và những lớp khác là lớp trừu tượng, cung cấp các triển khai xương được sử dụng làm điểm bắt đầu để tạo các bộ sưu tập cụ thể.

Các lớp thu chuẩn được tóm tắt trong bảng sau:

Sr.No.Lớp học & Mô tả
1AbstractCollection

Triển khai hầu hết giao diện Bộ sưu tập.
2AbstractList

Mở rộng AbstractCollection và triển khai hầu hết giao diện Danh sách.
3AbstractSequentialList

Mở rộng AbstractList để sử dụng bởi một bộ sưu tập sử dụng tuần tự hơn là truy cập ngẫu nhiên các phần tử của nó.
4LinkedList

Thực hiện một danh sách liên kết bằng cách mở rộng AbstractSequentialList.
5Lập danh sách

Thực hiện một mảng động bằng cách mở rộng AbstractList.
6AbstractSet

Mở rộng AbstractCollection và triển khai hầu hết giao diện Set.
7HashSet

Mở rộng AbstractSet để 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.
9TreeSet

Thực hiện một tập hợp được lưu trữ trong một cây. Mở rộng AbstractSet.
10AbstractMap

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.
12TreeMap

Mở rộng AbstractMap để sử dụng một cây.
13WeakHashMap

Mở rộng AbstractMap để sử dụng một 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.
15IdentityHashMap

Mở rộng AbstractMap và sử dụng bình đẳng tham chiếu khi so sánh tài liệu.
Các lớp AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList và AbstractMap cung cấp các triển khai xương của các giao diện thu thập lõi, để giảm thiểu các nỗ lực cần thiết để thực hiện chúng.
Các lớp kế thừa sau đây được định nghĩa bởi java.util đã được thảo luận trong chương trước

Sr.No.Lớp học & Mô tả
1Vector

Đ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 một tiêu chuẩn cuối cùng, đầu tiên ra stack.
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 một 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à một String và giá trị cũng là một String.
6BitSet

Một lớp BitSet tạo ra một kiểu 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.

Bộ sưu tập thuật toán

Khung bộ sưu tập xác định một số thuật toán có thể á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 Collections.

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

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

Sr.No.Thuật toán & Mô tả
1Bộ sưu tập thuật toán

Dưới đây là danh sách tất cả việc triển khai thuật toán.

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

Thông thường, bạn sẽ muốn chuyển qua các phần tử trong một bộ sưu tập. Ví dụ, bạn có thể muốn hiển thị từng phần tử.

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

Iterator cho phép bạn chu kỳ thông qua một bộ sưu tập, lấy 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 của một danh sách và sửa đổi các phần tử.

Sr.No.Phương pháp Iterator & Mô tả
1Sử dụng Java Iterator

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 các giao diện Iterator và ListIterator.

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

Cả hai yếu tố cửa hàng 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 thứ tự sắp xếp có nghĩa là gì.

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 theo nhiều cách khác nhau. Giao diện này cũng 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 (thậm chí các lớp chúng ta không thể sửa đổi).

Sr.No.Phương pháp Iterator & Mô tả
1Sử dụng Java Comparator

Đâ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 Comparator.

Tóm lược

Khung công tác bộ sưu tập Java cho phép các lập trình viên truy cập vào các cấu trúc dữ liệu đóng gói sẵn cũng như các thuật toán để thao tác chúng.

Bộ sưu tập là một đối tượng có thể chứa 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 công tác 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...