如何知道List对象是否具有固定大小

时间:2018-09-27 07:24:50

标签: java

我怎么知道列表的大小是否固定?

List<String> fixed = Arrays.asList(new String[100]);

这将创建一个固定的列表。但是String对象的实例化数组不再引用到String数组。

2 个答案:

答案 0 :(得分:2)

参考:Is it possible to find out if some list is fixed size or not?

是否可以找出某个列表的大小是否固定?

从理论上讲-否。固定大小是列表类实现的一种新兴属性。您只能通过尝试添加元素来确定列表是否具有该属性。

请注意,简单的行为测试无法可靠地区分固定大小的列表和有界列表或永久或临时只读的列表。

实际上,固定大小的列表通常具有与普通列表不同的类。您可以测试对象的类,以查看它是否为特定类。因此,如果您了解在代码库中将使用哪些类来实现固定大小的列表,则可以测试特定列表是否固定大小。

例如,Arrays.asList(...)方法返回一个List对象,其实际类为java.util.Arrays.ArrayList。那是一个私有的嵌套类,但是您可以使用反射来找到它,然后使用Object.getClass().equals(...)对其进行测试。

但是,这种方法很脆弱。如果修改了Arrays的实现,或者也开始使用其他形式的固定大小的列表,则代码可能会中断。

答案 1 :(得分:-5)

可以使用Set,Set可以输入无限个对象