我必须序列化Collection和Set接口。哪些是Java上那些接口的最佳Serializable替代品?
答案 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>