Legacy class trong Java là gì

What are the Legacy Classes in Java?

Earlier versions of Java did not include the Collections Framework. Only in from version 1.2, you could actually use this Legacy class. In this, the original classes were reengineered to support the collection interface. These classes are also known as Legacy classes. All legacy classes and interfaces were redesigned by JDK 5 to support Generics.

Dictionary

Dictionary is an abstract class. The main work is to hold the data as the key or value pair. It works in the form of Map Collection.

Properties

Properties class is a thread-safe i.e., multiple threads that can share single properties objects without external Synchronization. The set of properties in this class will be held in the key or value pair. Properties class extends the Hashtable class. Example:

package lc; import java.util.Properties; import java.util.Set; public class Test { public static void main[String[] args] { Properties pr = new Properties[]; pr.put["Joey", "Friends"]; pr.put["Rachel", " Friends "]; pr.put["Phoebe", " Friends "]; pr.put["Chandler", " Friends "]; Set creator = pr.keySet[]; for [Object ob : creator] { System.out.println[ob + " stars in " + pr.getProperty[[String] ob]]; } } }

Output:
Chandler stars in Friends
Phoebe stars in Friends
Rachel stars in Friends
Joey stars in Friends

Legacy Class in Java: HashTable

Hashtable is a part of Java.util package and it is a concrete class that extends the dictionary class. Hashtable is synchronized. From Java 1.2 framework onwards, hash table class implements the map interface and it is the part of the collection framework.

Example of Hashtable

import java.util.*; class HashTableDemo { public static void main[String args[]] { Hashtableht = new Hashtable[]; ht.put["a",new Integer[10]]; ht.put["b",new Integer[20]]; ht.put["c",new Integer[30]]; ht.put["d",new Integer[40]]; Set st = ht.entrySet[]; Iterator itr=st.iterator[]; while[itr.hasNext[]] { Map.Entry m=[Map.Entry]itr.next[]; System.out.println[itr.getKey[]+" "+itr.getValue[]]; } } }

Output:
10
20
30
40

Legacy Class in Java: Vector

Vector class is similar to the ArrayList class but there are certain differences. Vector is generally synchronized. It is used where the programmer doesn’t really have knowledge about the length of the Array.

Let us see some methods offered by this Vector method.

MethodDescription
E elementAt[int index]This method returns the element at the specified index
E firstElement[]It helps to return the first element in the Vector
Enumeration elements[]This helps to return an enumeration of the element in the vector
E lastElement[]Returns the last element in the Vector
void removeAllElements[]It helps in removing all the elements of the Vector

Example:

public class Test { public static void main[String[] args] { Vector ve = new Vector[]; ve.add[1]; ve.add[2]; ve.add[3]; ve.add[4]; ve.add[5]; ve.add[6]; Enumeration en = ve.elements[]; while[en.hasMoreElements[]] { System.out.println[en.nextElement[]]; } } }

Output:
1
2
3
4
5
6

Stack

Stack represents LIFO. Stack class extends the Vector class mentioned above.

class Stack{ public static void main[String args[]] { Stack st = new Stack[]; st.push[1]; st.push[2]; st.push[3]; st.push[4]; st.push[5]; Enumeration e1 = st.elements[]; while[e1.hasMoreElements[]] System.out.print[e1.nextElement[]+" "]; st.pop[]; st.pop[]; System.out.println["nAfter popping out one element”]; Enumeration e2 = st.elements[]; while[e2.hasMoreElements[]] System.out.print[e2.nextElement[]+" "]; } }

Output:
1 2 3 4 5
After popping out one element:
1 2 3 4

Now, let’s move on to the next segment that states the legacy interface.

Collection framework được thiết kế với mục đích như sau:

  • Framework phải là hiệu năng cao. Sự triển khai cho các tập hợp cơ bản [các mảng động, linked list, tree và hashtable] được sử dụng với hiệu quả cao.
  • Framework phải cho phép các kiểu tập hợp khác nhau để làm việc theo một cách tương tự như nhau với độ phân hóa ở mức cao.
  • Kế thừa và/hoặc tìm hiểu với các tập hợp phải là dễ dàng.

Đến cuối cùng, toàn bộ collection framework này được thiết kế xung quanh một tập hợp các interface tiêu chuẩn. Vài class triển khai như LinkedList, HashSetTreeSet của những interface này được cung cấp cho bạn có thể triển khai tập hợp nếu bạn chọn.

Một collections framework là một cấu trúc thống nhất để biểu diễn và thao tác các collection. Tất cả collections framework đều chứa:

  • Interface: Đây là các kiểu dữ liệu abstract mà biểu diễn collection. Interface cho phép collection được thao tác một cách độc lập theo phép biểu diễn của chúng. Trong ngôn ngữ hướng đối tượng, các interface nói chung cấu tạo nên một hierarchy.
  • Sự triển khai, ví dụ như các Class Đây là sự triển khai cụ thể của collection interface. Về bản chất, chúng là những 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 trình tính toán hữu ích, như tìm kiếm và xếp thứ tự phân loại, trên các đối tượng mà triển khai collection interface. Các thuật toán được xem như là đa hình: đó là, cùng một phương thức có thể được sử dụng trên nhiều sự triển khai khác nhau của collection interface thích hợp.

Ngoài ra, framework định nghĩa một số map interfaces và class. Map lưu giữ các cặp key/value. Mặc dù các map không là collections về khái niệm, nhưng chúng hoàn toàn tương thích với collection.

Collection Interface trong Java

Một Collection framework định nghĩa trước vài loại interface. Phần này cung cấp cho bạn tổng quan về mỗi interface:

STT Interface và Miêu tả
1

Collection Interface trong Java

Cho phép bạn có thể làm việc với các nhóm đối tượng, nó là phần interface cha của tất cả các collection interface khác

2

List Interface trong Java

Kế thừa từ Collection và một kiểu List lưu trữ tập hợp các phần tử một cách có thứ tự

3

Set Interface trong Java

Nó kế thừa Collection để thao tác với tập hợp, mà phải chứa các phần tử duy nhất

4

SortedSet Interface trong Java

Kế thừa từ Set để thao tác với tập hợp được xếp thứ tự

5

Map Interface trong Java

Liên kết giữa key duy nhất tới các value

6

Map.Entry Interface trong Java

Mô tả một thành phần key/value trong map. Là một inner class của Map

7

SortedMap Interface trong Java

Kế thừa từ Map để mà các key được duy trì một cách có thứ tự

8

Enumeration Interface trong Java

Đây là một legacy interface và định nghĩa phương thức, theo đó bạn có thể liệt kê các thành phần của một tập hợp trong một tập hợp các đối tượng.

Các lớp Collection trong Java

Java cung cấp một tập hợp các lớp collection tiêu chuẩn có thể triển khai các Collection interface.

Bảng dưới đây tổng hợp các lớp collection chuẩn trong Java:

STT Interface và Miêu tả
1

Collection Interface trong Java

Cho phép bạn có thể làm việc với các nhóm đối tượng, nó là phần interface cha của tất cả các collection interface khác

2

List Interface trong Java

Kế thừa từ Collection và một kiểu List lưu trữ tập hợp các phần tử một cách có thứ tự

3

Set Interface trong Java

Nó kế thừa Collection để thao tác với tập hợp, mà phải chứa các phần tử duy nhất

4

SortedSet Interface trong Java

Kế thừa từ Set để thao tác với tập hợp được xếp thứ tự

5

Map Interface trong Java

Liên kết giữa key duy nhất tới các value

6

Map.Entry Interface trong Java

Mô tả một thành phần key/value trong map. Là một inner class của Map

7

SortedMap Interface trong Java

Kế thừa từ Map để mà các key được duy trì một cách có thứ tự

8

Enumeration Interface trong Java

Đây là một legacy interface và định nghĩa phương thức, theo đó bạn có thể liệt kê các thành phần của một tập hợp trong một tập hợp các đối tượng.

Các lớp AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList và AbstractMap trong Java cung cấp sự triển khai xương sống của các Collection Interface lõi, để tối thiểu hóa nỗ lực cần để thi hành chúng.

Các legacy class sau được định nghĩa bởi java.util, đã được bàn luận trong chương trước:

STT Các lớp và Miêu tả
1

Lớp Vector trong Java

Lớp này triển khai một mảng động. Nó tương tự như ArrayList, nhưng có một số điểm khác nhau

2

Lớp Stack trong Java

Stack là lớp phụ của lớp Vector mà triển khai last-in-first-out stack

3

Lớp Dictionary trong Java

Dictionary là một abstract class mà biểu diễn một kho lưu giữ key/value và hoạt động khá giống Map

4

Lớp Hashtable trong Java

Hashtable là một phần của java.util gốc và là một sự triển khai cụ thể của một Dictionary

5

Lớp Properties trong Java

Properties là một lớp phụ của Hashtable. Nó được sử dụng để duy trì các danh sách giá trị trong đó key là một String và value cũng là một String

6

Lớp BitSet trong Java

Một lớp BitSet tạo một kiểu mảng đặc biệt mà giữ các giá trị bit. Mảng này có thể tăng kích cỡ nếu cần

Các thuật toán Collection trong Java

Collection Framework định nghĩa một số thuật toán có thể được áp dụng cho các Collection và Map. Những thuật toán này được định nghĩa như là các phương thức tĩnh [static] bên trong lớp Collection.

Một số phương thức có thể ném một ClassCastException, mà xảy ra khi cố gắng so sánh các kiểu không tương thích, hoặc một UnsupportedOperationException, mà xảy ra khi cố gắng sửa đổi một Unmodifiable Collectioon.

Các Collection định nghĩa 3 biến static là: EMPTY_SET, EMPTY_LIST, và EMPTY_MAP. Tất cả là không thể thay đổi.

STTThuật toán và Miêu tả
1Thuật toán Collection trong Java Đây là danh sách tất cả các thuật toán.

Cách sử dụng một Iterator trong Java

Thường thì, bạn sẽ muốn tuần hoàn qua các phần tử trong một tập hợp. Ví dụ, có thể bạn muốn hiển thị mỗi phần tử.

Cách đơn giản nhất để thực hiện điều này là thuê một Iterator, là một đối tượng mà triển khai hoặc Iterator hoặc Listlerator interface.

Iterator cho bạn khả năng để tuần hoàn qua một tập hợp, kiếm được và gỡ bỏ các phần tử. ListIterator kế thừa Iterator để cho phép "vọc" song hướng một danh sách và sửa đổi các phần tử.

STTCác phương thức Iterator và miêu tả
1Sử dụng Iterator trong Java Đây là danh sách tất cả phương thức và ví dụ về Iterator và ListIterator interface.

Cách sử dụng một Comparator trong Java

Cả TreeSet và TreeMap đều lưu giữ các phần tử trong thứ tự đã được xếp thứ tự. Tuy nhiên, nó là comparator mà định nghĩa chính xác ý nghĩa của sorted order.

Interface này giúp chúng ta xếp thứ tự một tập hợp với bất kỳ số lượng mảng nào đã cho. Ngoài ra, interface này cũng có thể được sử dụng để xếp thứ tự bất kỳ instance nào của bất kỳ lớp nào [ngay cả các lớp chúng ta không thể chỉnh sửa].

STTPhương thức Comparator và Miêu tả
1Sử dụng Comparator trong Java Đây là danh sách tất cả các phương thức và ví dụ về Comparator Interface.

Tổng kết

Collection Framework trong Java cung cấp cho lập trình viên truy cập tới các cấu trúc dữ liệu đã đóng gói trước [Prepackage] cũng như các thuật toán để thao tác chúng.

Một Collection là một đối tượng mà có thể giữ các tham chiếu tới các đối tượng khác. Collection Interface khai báo các hoạt động mà có thể được thực hiện trên mỗi kiểu Collection.

Các Class và Interface của Collection Framework là trong gói java.util.

Sự khác nhau giữa Collection và Collections?

Collection là một interface cấp cao nhất nhất của Collection Framework. Trong khi đó, Collections là một lớp tiện ích. Collections bao gồm các phương thức static được sử dụng để thao tác trên các đối tượng của Collection [List, ArrayList, LinkedList, Map, Set, …].

Interfacejava.util.Collection được định nghĩa như sau:

public interface Collection extends Iterable{ }

Interfacejava.util.Collections được định nghĩa như sau:

public class Collections { }

Những điểm quan trọng về lớp Collections trong java là:

  • Lớp Collections hỗ trợcác thuật toán đa hình [polymorphic algorithms]hoạt động trên các collection.
  • Lớp Collectionsném một ngoại lệ NullPointerExceptionnếu các collection hoặc các đối tượng lớp cung cấp cho chúng là null.

Video liên quan

Chủ Đề