2012-01-20 20 views

Trả lời

16

Đặt là giao diện .
Sử dụng HashSet là triển khai Đặt và HashSets được nối tiếp.
Chỉ cần chắc chắn rằng tất cả các đối tượng trong Tập là có thể tuần tự hóa.

Để biết thêm thông tin Why java.util.Set is not Serializable?

PS. Nó không phải là một HashSet sử dụng bất kỳ lớp bê tông nào có thể tuần tự hóa và triển khai Set, hoặc Collection

+0

Vâng , Tôi sẽ nói sử dụng bất kỳ việc triển khai nào là thích hợp nhất cho các yêu cầu của bạn, thay vì giới thiệu ngẫu nhiên một yêu cầu không có thông tin cơ bản. – dty

+0

Tôi đồng ý với điều đó, điều bất lực là chọn một lớp cụ thể và không phải là một giao diện. – Farmor

1

Kiểm tra loại biết rằng bộ không thể tuần tự hóa được, nhưng một loại phụ có thể được tuần tự hóa.

Đặt là Giao diện. Nhưng triển khai tập hợp là HashSet. Đây là serializable.

Bạn sẽ không muốn sắp xếp một bộ vì Tập hợp không thể được khởi tạo.

Set st = new Set(); // illegal 

Vì vậy, thiết lập không thực sự cần phải triển khai Serializable.

Dù sao, bạn có thể sử dụng LinkedHashSet và TreeSet. Đó cũng là Serializable.

0

Một số những điểm chung:

--HashSet: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E> 

--TreeSet: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, 
    Set<E>, SortedSet<E> 

--ArrayList: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess 

--LinkedList: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, Queue<E> 
Các vấn đề liên quan