2012-01-20 8 views

答えて

16

セットはインターフェイスです。
を実装し、HashSetを使用します。は、シリアル化可能です。
Set内のすべてのオブジェクトがシリアライズ可能であることを確認してください。詳細Why java.util.Set is not Serializable?

PS用

。これは、HashSetのは、型チェックは、セットが直列化可能ではなく、セットのサブタイプは、シリアライズできることを知って、シリアライズし、Setを実装する、またはコレクション

+0

のようないくつかのことを探しています私は、背景情報なしで無作為に推薦するのではなく、あなたの要件に最も適した実装を使用すると言うでしょう。 – dty

+0

私はそれに同意します、無力なことは、具体的なクラスを選択することであり、インターフェースではありません。 – Farmor

1

ある任意の具象クラスを使用する必要はありませんでした。

セットはインターフェイスです。しかし、setの実装はHashSetです。これはシリアライズ可能です。

セットをインスタンス化できないため、セットをシリアル化することは期待できません。

Set st = new Set(); // illegal 

setは、実際にはSerializableを実装する必要はありません。

とにかく、LinkedHashSetとTreeSetを使用できます。それらもシリアライズ可能です。

0

いくつかの一般的なもの:

--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> 
関連する問題