Java Collections Framework

Trước Java 2, Java cung cấp các lớp học đặc biệt như từ điển, Vector, Stack, và Properties để lưu trữ và xử nhóm đối tượng. Mặc dù các lớp này là khá hữu ích, họ thiếu một, chủ đề thống nhất trung ương. Vì vậy, cách mà bạn sử dụng Vector là khác với cách mà bạn sử dụng Properties.
The collections framework được thiết kế để đáp ứng một số mục tiêu.
  • Khung có được hiệu suất cao. Việc triển khai cho các bộ sưu tập cơ bản (các mảng động, danh sách liên kết, cây cối và hashtables) là có hiệu quả cao.
  • Khung phải cho phép các loại khác nhau của các bộ sưu tập để làm việc trong một cách tương tự và với một mức độ cao của khả năng tương tác.
  • Mở rộng và / hoặc điều chỉnh một bộ sưu tập phải được dễ dàng.
Nhằm mục đích này, các khuôn khổ toàn bộ bộ sưu tập được thiết kế xung quanh một tập hợp các giao diện chuẩn. Một số triển khai tiêu chuẩn như LinkedList, HashSet, và TreeSet, các giao diện đượ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 mình, nếu bạn chọn.
Một khuôn khổ bộ sưu tập là một kiến trúc thống nhất cho các đại diện và thao tác các bộ sưu tập. Tất cả các bộ sưu tập các khuôn khổ nội dung chính sau:
  • Interfaces: Đây là những kiểu dữ liệu trừu tượng mà đại diện cho bộ sưu tập. Giao diện cho phép các bộ sưu tập để được thao tác một cách độc lập của các chi tiết của đại diện của họ. Trong các ngôn ngữ hướng đối tượng, giao diện nói chung tạo thành một hệ thống phân cấp.
  • Implementations, i.e., Classes: Đây là những triển khai cụ thể các giao diện bộ sưu tập. Về bản chất, họ là những cấu trúc dữ liệu tái sử dụng.
  • Algorithms: Đây là những phương pháp thực hiện các tính toán hữu ích, chẳng hạn như tìm kiếm và phân loại, trên các đối tượng thực hiện các giao diện bộ sưu tập. Các thuật toán này được cho là đa hình: đó là, cùng một phương pháp có thể được sử dụng trên nhiều hiện thực khác nhau của giao diện thu phù hợp.
Ngoài các bộ sưu tập, khuôn khổ định nghĩa vài giao diện và các lớp bản đồ. Maps lưu trữ cặp khóa / giá trị. Mặc dù các bản đồ không phải là bộ sưu tập trong việc sử dụng đúng thời hạn, nhưng chúng được tích hợp hoàn toàn với các bộ sưu tập.

Collection Interfaces

Các khuôn khổ bộ sưu tập xác định một số giao diện. Phần này cung cấp một cái nhìn tổng quan của mỗi giao diện:
SNINTERFACES WITH DESCRIPTION
1The Collection Interface
This enables you to work with groups of objects; it is at the top of the collections hierarchy.
2The List Interface
This extends Collection and an instance of List stores an ordered collection of elements.
3The Set
This extends Collection to handle sets, which must contain unique elements
4The SortedSet
This extends Set to handle sorted sets
5The Map
This maps unique keys to values.
6The Map.Entry
This describes an element (a key/value pair) in a map. This is an inner class of Map.
7The SortedMap
This extends Map so that the keys are maintained in ascending order.
8The Enumeration
This is legacy interface and defines the methods by which you can enumerate (obtain one at a time) the elements in a collection of objects. This legacy interface has been superceded by Iterator.

Collection Classes

Java cung cấp một tập các lớp học tập tiêu chuẩn mà thực hiện các giao diện Collection. Một số các lớp triển khai cung cấp đầy đủ mà có thể được sử dụng như là và những người khác là lớp trừu tượng, cung cấp triển khai thực hiện bộ xương được sử dụng như là điểm khởi đầu cho việc tạo ra bộ sưu tập cụ thể.
Các lớp học tập tiêu chuẩn này được tóm tắt trong bảng sau:
TTMÔ TẢ CÁC CLASS
1AbstractCollection 
Implements most of the Collection interface.
2AbstractList 
Extends AbstractCollection and implements most of the List interface.
3AbstractSequentialList 
Extends AbstractList for use by a collection that uses sequential rather than random access of its elements.
4LinkedList
Implements a linked list by extending AbstractSequentialList.
5ArrayList 
Implements a dynamic array by extending AbstractList.
6AbstractSet 
Extends AbstractCollection and implements most of the Set interface.
7HashSet 
Extends AbstractSet for use with a hash table.
8LinkedHashSet 
Extends HashSet to allow insertion-order iterations.
9TreeSet
Implements a set stored in a tree. Extends AbstractSet.
10AbstractMap 
Implements most of the Map interface.
11HashMap 
Extends AbstractMap to use a hash table.
12TreeMap
Extends AbstractMap to use a tree.
13WeakHashMap 
Extends AbstractMap to use a hash table with weak keys.
14LinkedHashMap 
Extends HashMap to allow insertion-order iterations.
15IdentityHashMap 
Extends AbstractMap and uses reference equality when comparing documents.
Các class AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList và AbstractMap cung cấp triển khai thực hiện bộ xương của các giao diện bộ sưu tập cốt lõi, để hạn chế tối đa các nỗ lực cần thiết để thực hiện chúng.
Các lớp học di sản sau đây được xác định bởi java.util đã được thảo luận trong bài viết trước đây:
SNCLASSES WITH DESCRIPTION
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.
2Stack 
Stack là một lớp con của Vector mà thực hiện một last-in tiêu chuẩn, đầu ra stack.
3Dictionary
Từ điển là một lớp trừu tượng đại diện cho một kho lưu trữ chính / giá trị và hoạt động giống như Map.
4Hashtable
Hashtable là một phần của java.util ban đầu và là một thực hiện cụ thể của một từ điển.
5Properties
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ị mà trong đó chính là một String và giá trị cũng là một String.
6BitSet
A BitSet class creates a special type of array that holds bit values. This array can increase in size as needed.

Collection Algorithms

Các bộ sưu tập khung định nghĩa một số thuật toán có thể được áp dụng cho các bộ sưu tập và bản đồ. Những thuật toán này được định nghĩa là phương pháp tĩnh trong lớp Collections.
Một số phương pháp 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 loại 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 unmodifiable.
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.

Sử dụng Iterator

Thông thường, bạn sẽ muốn chu kỳ thô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ị mỗi phần tử.
Cách dễ nhất để làm điều này là sử dụng một iterator, đó là một đối tượng mà thực hiện một trong hai giao diện Iterator hoặc ListIterator.
Iterator cho phép bạn để chu kỳ thông qua một bộ sưu tập, nhận hoặc loại bỏ yếu tố. ListIterator mở rộng để cho phép Iterator traversal hai chiều của một danh sách và các sửa đổi của các yếu tố.

Sử dụng Comparator

Cả hai yếu tố TreeSet và cửa hàng TreeMap trong thứ tự sắp xếp. Tuy nhiên, nó là so sánh mà xác định chính xác những gì được sắp xếp phương tiện tự.
Giao diện này cho phép chúng tôi sắp xếp một bộ sưu tập được nhiều 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 của lớp nào (ngay cả lớp chúng ta không thể thay đổi).

Tổng kết:

Các khuôn khổ bộ sưu tập Java cung cấp cho các lập trình viê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 mà có thể giữ 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 của bộ sưu tập.
Các lớp và các giao diện của các khuôn khổ bộ sưu tập được trong gói java.util.

Nhận xét

Đăng nhận xét