为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2021-10-13 16:35:16
如何知道 List 是否具有固定大小?List<String> fixed = Arrays.asList(new String[100]);这将创建一个固定列表。但 String 对象的实例化数组不再引用 String 数组。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

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

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

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

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

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

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


查看完整回答
反对 回复 2021-10-13
?
aluckdog

TA贡献1847条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-10-13
  • 2 回答
  • 0 关注
  • 260 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信