Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是“可序列化”的最佳替代品;“设置”;及;“收藏”;接口?_Java - Fatal编程技术网

Java 什么是“可序列化”的最佳替代品;“设置”;及;“收藏”;接口?

Java 什么是“可序列化”的最佳替代品;“设置”;及;“收藏”;接口?,java,Java,我必须序列化集合并设置接口。Java上那些接口的最佳可序列化替代品是什么?集合是一个接口 使用实现的HashSet和可序列化的HashSet 只要确保集合中的所有对象都是可序列化的 更多信息 另外,它不必是散列集;使用任何可序列化并实现Set或Collection的具体类。类型检查知道Set不可序列化,但Set的子类型可以序列化 Set是一个接口。但set的实现是HashSet。这是可序列化的 您不会期望序列化集合,因为集合无法实例化 Set st = new Set(); // illegal

我必须序列化集合并设置接口。Java上那些接口的最佳可序列化替代品是什么?

集合是一个接口
使用实现的HashSet和可序列化的HashSet
只要确保集合中的所有对象都是可序列化的

更多信息


另外,它不必是散列集;使用任何可序列化并实现Set或Collection的具体类。

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

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

您不会期望序列化集合,因为集合无法实例化

Set st = new Set(); // illegal 
所以set实际上不需要实现Serializable

无论如何,您可以使用LinkedHashSet和TreeSet。这些也可以序列化。

一些常见的:

--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> 
--哈希集:
所有实现的接口:
可序列化、可克隆、可编辑、集合、集合
--树集:
所有实现的接口:
可序列化、可克隆、可移植、集合、NavigableSet、,
集合
--ArrayList:
所有实现的接口:
可序列化、可克隆、可编辑、集合、列表、随机访问
--链接列表:
所有实现的接口:
可序列化、可克隆、可编辑、集合、列表、队列

您是否在寻找这样的东西,我会说,使用最适合您需求的实现,而不是随机推荐一个没有背景信息的实现。我同意这一点,重要的是选择一个具体的类,而不是一个接口。