什么是“Set”和“Collection”接口的最佳Serializable替代品?

时间:2012-01-20 11:15:27

标签: java

我必须序列化Collection和Set接口。哪些是Java上那些接口的最佳Serializable替代品?

3 个答案:

答案 0 :(得分:18)

设置为界面 使用实施的HashSet设置和HashSets 可序列化
请确保Set中的所有对象都是可序列化的。

了解更多信息Why java.util.Set is not Serializable?

PS。它不必是HashSet使用任何可序列化的具体类并实现Set或Collection

答案 1 :(得分:1)

类型检查知道set不可序列化,但set的子类型可以序列化。

Set是一个接口。但是set的实现是HashSet。这是可序列化的。

您不希望序列化Set,因为无法实例化Set。

Set st = new Set(); // illegal 

所以set并不需要实现Serializable。

无论如何,您可以使用LinkedHashSet和TreeSet。这些也是Serializable。

答案 2 :(得分: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>